June 30 2014: Argparser updates

Modified Files:
	argparser.py
		The argparser is nearly completed. At least as far as I
		can tell. It support short (required) and long names
		(optional) for arguments. It nearly supports argument
		dependencies. It is this weird concept that I thought of
		where you may need a set of arguments to be passed or
		set if one argument is passed. I don't think it is
		necessary for this program, but it would have been
		useful for the header generator program, so I'll add it
		in anyway.

		Argument Errors are put into two catagories, critical and
		non-critical errors. The program will terminate on
		critical errors, but will not on non-critical errors.
		Critical Errors include:
			invalid data type
			missing required argument
			missing dependencies
		Non-critical Errors include:
			unknown arguments
		When parsing the arguments, critical errors will
		immediately stop the program and will print a red error
		message to the console, whereas a non-critical error
		will print a yellow error message to the console.

		Argparser supported datatypes:
			String: A single string

			Integer: A single integer and will be converted
			to an int in the arg data

			Float: A single float value and will be
			converted to a float in the arg data

			Bool: Simply setting a flag, the existences of
			this argument will set the flag to True,
			otherwise it will be set to False

			List: This takes a list of strings separated by
			a space. The argument data will be converted to
			a list. It will continue appending items to the
			list until it reaches an argument with either
			'-' or '--' preceeding a string. This may or may
			not be a valid argument, if it is it will be
			handled, otherwise it will throw a non-critical
			error and continue parsing the list of
			arguments.

	compress.py:
		This has really only been modified to demonstrate
		features as I add them. I currently have arguments for
		verbose, help, version, compress, decompress, output
		file, compressing an entire file, and decompressing an
		entire file.

		The labels for these are:
			-v: verbose
			-h: help
			-version: version (Subject to change)
			-c | --compress: compress a message
			-d | --decompress: decompress a message
			-o | --output: Output file name
			-cf: file name of file to be compressed
			-df: file name of file to be decompressed

		As of right now, -cf and -df are of the list type,
		however, I don't like that, so I'm going to change it to
		a string in the future.

	Future Plans:
		Update the argument parser to actually print and handle
		args in the order that they were added to the argparser.