Seperated concerns of entity between ImmutableEntity and Entity.

Seperated concerns
Renamed Model=>Entity and Entity=>ImmutableEntity
Seperated tests.