Updated gitignore, fixed commandparsing

- Anything component can now be optional
- Fixed bug: Was accidentally returning successful command if
the CURRENT component was optional when out of input, instead of
moving on to the next component.