Making the Model API more consitent with EntityType

I would add some tests about what happens if you try to remove an entity by type and that type doesn't exist in the model. Similarly by name. And similarly what happens if you try to remove but the list of entities is empty.

Otherwise looks good.