Test factoring, fix path bug

- fix bug when source is not direct child of templates
- refactored recurse_directory function, pulling implementation into separate
  module and split into smaller methods.
- add rubocop to help style consistency
- add Gemfile so test dependencies are locked down
- use ruby 2.0.0 for tests, I think puppet module should still work with 1.8.7