Allow to customize primary keys

Hi,
First of all, sorry if there is something wrong in the way I create this pull request, it's my first pull request ever !! :)
Regarding to the issue #730 I created few days ago, I've implemented on my side the ability for a user to choose a custom primary key during the entity generator.
For now, only a unique PK is allowed (maybe I'll try later to add composite PK, which is my final goal).
I'm not sure for the nosql part, as I don't know nosql ...
I've also noticed that when we update the primary key of an entity, it creates a whole new entity with the new primary key (the old entity is not deleted). I haven't changed this behavior, as it implies a lot of code, and maybe the behavior could be acceptable (means this could be the default behavior, and let the user changes this if he's not happy with that).
I'm available for any questions/comments/ ...
Best regards