Applications should be able to have multiple owners

For private client apps to be usable, more than one user should be able to use them to authenticate/authorize

TODO: delete client app when last owner is destroyed
TODO: more cleanup
Create model to manage user-application many-to-many join

Create Membership model to map users to OAuth Applications. Also include a 'member_type' field to differentiate Owners and Developers
Set up destroy hooks for Doorkeeper::Application

Trigger a destroy on the application if the last owner is being destroyed. Also want to destroy memberships when either the user or the application is destroyed, which makes things tricky.
Remove owner foreign key from oauth_applications

To support multiple owners, we use the join table (memberships), rather than a foreign key on oauth_applications
Merge pull request #321 from 18F/feature/many_owners

Applications should be able to have multiple owners