Make history class

This adds the SampleHistory Class to entities.py.
The history generation is slightly faster than the previous version, but not by much (~10%).

Another PR will come for the scilifelab repo to use this object rather than the methods from lims_utils.py.
Will this ever stop? If ```art_map.has_key(our_artifact)``` is True and you don't remove the key this will be an infinite loop