Enhanced Parser

- Parser now supports arguments, compound arguments (with both short and long keys).
- Simplified and cleaned up parsing algorithm.
- Added more customisable options
- Added more unit tests and a very complex unit test. Line coverage practically 100%

Parser status: complete for now.