Pull Request for Issue771: add application argument parser

@davidChevrier @dretrex 

https://github.com/acquaman/acquaman/issues/771

Added:
  - The parser to parse the customized application arguments
```
	Command-line arguments could be:
		* program argument: the argument of the program, no prefix and separated by space
		* single-character argument: starts with hyphen-minus "-" and separated by space
		* combined single-character argument
		* long/customized argument: prefixed with double hyphen-minuses "--"
		* can have no more than one argument value (separated with "=" or ":")

		eg: valid argument: -f, --force, -r, --recursive, -fr (equivalent to -f -r), -force (equivalent to -f -o -r -c -e)

	argument value:
		* the value of an argument, separated with special character "=" or ":".
		* combined single-character arguments can't have value

		eg: programName programArgument1 programArgument2, or
			programName -f programArgument1 -r programArgument2, or
			programname -f:argumentValue programArgument1 --load=argumentValue
```
@XuetaoLiu-CLS 

We use camel-case for enums as well (ie,, ProgramArgument as opposed to PROGRAM_ARGUMENT)