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.
Hm I can see some problems here: This init method do not stop the object initialization if no lims object is passed. I.e, I can do ```s = SampleHistory()```. However, the rest of the methods assume that the object has been properly initialized, for example the ```def controll(self)``` method will crash because it **assumes** that the SampleHistory object has self.history attribute, which won't be the case. The method ```def alternate_history(self, out_art, in_art=None)``` **assumes** that SampleHistory has the lims object, which won't be the case, etc.
* Either add error checks everywhere 
* Or force the initialization of the object to require a lims parameter, which I think is logical given that the sample information will always come from a lims object