Various bug fixes.

- Made Data::dump() pure virtual.
- Added license header to cpptempl.cpp and updated LICENSE.txt.
- Changed TokenIterator to work on a const token_vector and return
  const Token pointers.
- Node class ctors now take const token_vector refs.
- Removed end-node token type enums.
- Removed NodeEnd class.
- Added member to NodeFor and param to ctor to track whether the node is
  the outermost for loop.
- Added an #if/else to allow inclusion of cpptempl.cpp when
  CPPTEMPL_UNIT_TEST is defined, so the unit test can access the impl
  namespace definitions.
- Cleaned up dump output a bit. Replacing newlines with "\n" in strings
  before dumping.
- Fixed != operator in tokenizer. It was returning EQ_TOKEN instead.
- The || operator is handled slightly differently in that its result is
  either of the two values instead of always a bool. This lets you use
  || to select one of several values that may be empty.
- Fixed the created "loop" variable in nested for loops. When a child
  for loop is entered, the previous "loop" var value is saved, and it
  is restored when the child loop terminates.
- Fixed issues with the '>' newline-elision operator when a newline
  doesn't actually follow the var or control statement. It was always
  chopping off the character following the close brace.

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

- Got the unit tests building and passing again after updating the test
  code with all the recent changes.
- Added a few new test cases, though many more need to be added.
- Created a simple makefile to build the unit test module.
- Added license header to unit_testing.h and cpptempl_test.cpp.
- Replaced wide2utf8() definition in unit_testing.h with latest versions
  from main cpptempl repo. (Though they aren't actually used anymore.)

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