Server table spike / remove GroupState (in progress)

This has changes to remove `GroupState` and replace it with separate table to store servers. This way the group is going to be locked only when executing policy or changing min/max. It is not going to be locked on every server becoming active. I've tested this and group creation, scale up and down is working at very basic level. `server_id` in code means Id of server is servers table. It does NOT mean nova server id which is why all references of `server_id` that refer to nova id has been changed to `nova_id`. 

Still lot of things to be done:
- [ ] REVIEW!
- [ ] Implement changes to store policy execution time in policies table
- [ ] Store group execution time in groups table
- [ ] `remove_server_from_group` needs to be changed 
- [ ] Tests
- [ ] Remove `GroupState` completely

So, this change was ideally meant to be for review and see if the changes make sense. If its all good, the sequence of PRs to achieve this change is there in https://gist.github.com/manishtomar/cd76d0edb78a87314214

another point:

- status's values and transitions should be documented and enforced