Add an implementation of the Word class from pyparsing.

This is the start of an attempt to re-implement pyparsing using the bdec primitives.
Add the Literal, And, Or, OneOrMore, ZeroOrMore types.

It also now correctly skips whitespace during parsing.
Rename 'save' to 'dumps'.

This is more consistent with other python APIs (such as pickle).
Add the StringEnd class.
Add the pyparsing ParseException class.
Fix the tests when using pyparsing.
Add the alphas, nums, and alphanums variables.
Add support for the CharsNotIn element.
Implement the Suppress element.
Support the MatchFirst command.

Also treat the 'Or' as a MatchFirst; this is wrong, but we're unlikely to support Or.
Automatically set reference parent.

This makes it a _lot_ easier to use the ReferencedEntry class (as the parent is automatically set).
Implement the Forward parser element.
Add the Combine parser element.
Add the CaselessLiteral, and fix the Combine tokens.
Add basic support for adding parse actions.
Don't create duplicate decoders from the same parser element.

Previously if the same element was used multiple times, it would create a separate decoder for each instance. Now it caches the result (same as the Forward did) for all parser element types.
Modify the existing Or and And elements where possible.

This avoids creating excessively deep heirarchies.
Correctly handle action handlers with one, two, or three parameters.

Also add a few more of the builtin constants.
Check for strings that need to be converted to Literal objects.
Add support for the 'ignore' method.

This allows the parser to ignore sections of the input text, and is commonly used for parsing comments. Also improves the ParseException support.