Add support for metadata, extensions, PATH

- Adds support for specifying description and arguments in `options.metadata`
- Adds support for searching the PATH for commands which closes #5
- Adds better support for different extensions