Refatoring to allow nested objects

ShoppingListItem : Change Ref<ProductDto> to ProductDto
Product : Change Ref<Categoty> to CategoryDto
added flexjson to serialize a shoppinglist and its items. With the
previous change it woudn't be necesary but keep it because it could be
useful to serialize objects with the key string (Gson doesn't include
it)
Change design to tables