#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.