Add some tests

This commit adds the initial unit tests for the
data compilation tools.

This commit refuters the code a bit to add better
unit test coverage:
- all config file lookup is done through a method
(to make it easier to mock)

It also resolves a few issues that were discovered
during the testing process:
- arrays could not be interpolated
- all hiera values were not being interpolated
- duplicate classes should be removed from list
Add fact lookup

This commit adds the ability to use Puppet's facts
terminus to retrieve fact values for testing.