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.
Actually I do, I need to do this process for every artifact in the genoealogy of the given one, thats what the while does. the for's / breaks are only there to match corresponding objects, because i can't grab say, only one process or only one artifact. Without the while, I would just do one loop, which would kinda defeat the point of making a history object.