Adds unit tests to Puppet::Pops::Types
Fixes to type_calculator needed to make all unit tests run OK

The following fixes are included:
1. infer_object assigns class name instead of class to ruby_class
2. infer_object returns the type, not value of last expression
3. common_type checks contained types recursively for array and hash
Fixes to type_factory needed to make all unit tests run OK

The following fixes are included:
1. array_of(o) checks if o is_a?(PObjectType) instead of checking
   if o is_a?(Ptype)
2. hash_of_data sets key_type to literal (element_type was assigned
   twice and key_type wasn't assigned at all)
3. hash_of(o) now takes a second optional argument for the key type