moved data into own subpackage
create Evaluater interface and refactored around it

DataObject is now an interface that extends Evaluator, and moved old
DataObject to DataObjectMap, and is based directly on map. The intention
is that many objects will implement Evaluater directly, so now templating
doesn't need DefaultLocator passed around. Added data.Eval to simplify
cases where a value doesn't implement Evaluater.
fix templates tests for evaluater refactor