Fact::Subject.new_subject, Fact::ID.new_id
Uniformly store String object for the uuid fields

* storing (provenance_)subject and id as native String type
  (instead of instances of Fact::Subject and Fact::ID)
* this brings back the performance from 60 us/fact to 47 us/fact
* this also causes a more uniform storage type (now _always_
  strings) that will allow to remove the FIXME on equivalent?
Fact::ID and Fact::Subject are now a module

* less code _and_ faster :-)
* only creates a String new_id and new_subject
Remove the FIXME in equivalent?

* now the types of id, (provenance_)subject are uniform (String (uuid))
Use # encoding-utf-8 for source files with UTF-8 characters

* strings and regexp where not default in utf-8 in ruby < 2.0.0