Make signal handler implementations look consistent

NC-127
Introduce role change related signals

Two signals were added:

* structure_role_granted
* structure_role_revoked

They are emitted whenever a user is added or removed
from any structural container, like Customer or Project.

NC-127
Membership & signal refactoring,WIP

NC-127
Membership & signal refactoring finish

Customer and Project now handle membership consistently:

* membership creation now returns 304 NOT MODIFIED
  and a Location of an existing membership
* membership creation and deletion is done via
  add_user and remove_user methods respectively
* membership serializers are no longer in charge
  of saving new memberships, this is done in views now

NC-127
Merge branch 'develop' into feature/nc-127-2

Conflicts:
	nodeconductor/cloud/models.py
	nodeconductor/iaas/models.py
	nodeconductor/structure/tests/test_customer.py
	nodeconductor/structure/tests/test_project.py
	nodeconductor/structure/views.py
Public key propagation finally done

All the three use cases handled:

1. user joining a project
2. user adding new key
3. cloud added to project

NC-127
Code review fixes

NC-127
Merge branch 'develop' into feature/nc-127-2

Conflicts:
	nodeconductor/cloud/models.py
Merge branch 'feature/nc-127-2' into 'develop'

Key propagation finalized, structure membership signals refactoring