String Functionality

Update most classes to output a string representation of the rule.
Value Functionality

The ability to pass literal values into the rule, rather than just variables (requiring context), is now available.
Update Lexer

Lexer is now complete.
Add Exceptions

A nice long list of exceptions for many different error scenarios.
Update Lexer
Add Parser

Partially completed (values, variables and collections).