Better error handling of invalid URI's

- fixes #54
- normalizes error handling of invalid command line options
- wraps all Launchy.open exceptions in a Launchy::Errorjj