#136 Clean Item object separate ItemRepository, for data loading

Makes the Item a clean domain object and moves loading of item instance, into the ItemRepository. Adds related unit tests.
Adds item-type as additional field in Item.
Not a problem, I only found it trawling the reddit threads. Was posted I think in Jan or last year. Will try find it quick