Fixed issue with subtemplates accessing global data map keys.

- Changed data_map::has() and data_map::parse_path() to properly handle
  a request for a key that doesn't exist in the local map when there is
  a parent map set.
- Added test cases for this bug.
- Split up some of the parse() test cases into new test suites.

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