Handle -h help and invalid args better
Handle -h help and invalid args better

- don't continue executing if printing usage
- exit as failure if given invalid option
- exit as success if invoked with -h
- don't print usage when invoked without args (in prep for accepting
STDIN)

qzb/sh-semver