Added parameter support to subtemplates and other fixes.

- Updated documentation.
- Added missing support for true/false constants.
- Added '!', '&&', '||' as synonyms for 'not', 'and', 'or'.
- Fixed lexer handling of != and == that was broken but still magically
  worked.
- Added error messages for most calls to TokenIterator::match().
- Fixed ExprParser::parse_var() so it can handle empty parentheses.
- data_map has an optional parent pointer. The operator[] will ask the
  parent (if set) for a missing key.
- Renamed DataTemplate::parse() to eval() and added an optional data_list
  parameter of subtemplate parameter values. Added support for passing
  parameter values into the subtemplate.
- make_template() has an optional param names string_vector.
- Removed print_tokens().
- Removed exception handlers in Node subclass ctors since tokenzie()
  has an exception handler to add line number info now.
- NodeDef::gettext() sets the new DataTemplate's param names.
- Some cleanup of tokenize(). Changed to a switch statement instead of
  if/else tree to create statement nodes.

Signed-off-by: Chris Reed <flit@me.com>