User role dropdown

Closes #3402, Closes #3428

------------------



### Components
- Added `GhostSelectComponent` to handle async select creation (h/t @rwjblue)
- Added `GhostRolesSelector` (extends GhostSelectComponent) for displaying user role options
- Created `StoreInjector` for surgically inserting the store into things that normally wouldn't have them.
- InviteNewUserModal now uses GhostRolesSelector & defaults to Author (per 3428)

### User Model
- Added `role` property as an interface to getting and setting `roles`
- Refactored anything that set `roles` to set `role`
- isAdmin, isAuthor, and isEditor are all keyed off of `role` now

### Tests
- Added functional tests for Settings.Users
- updated settings.users and settings.users.user screens
- fix spacing on screens

### Server Fixtures
- Fixed owner fixture's roles
Thanks, I refactored it from "isOwnPorfile" to "isNot", and failed to
actually change the body :p


On Wed, Jul 30, 2014 at 2:46 PM, Hannah Wolfe <notifications@github.com>
wrote:

> In core/client/views/settings/users/user.js:
>
> > @@ -0,0 +1,13 @@
> > +var SettingsUserView = Ember.View.extend({
> > +    currentUser: Ember.computed.alias('controller.session.user'),
> > +
> > +    isNotOwnProfile: Ember.computed('controller.user.id', 'currentUser.id', function () {
> > +        return this.get('controller.user.id') === this.get('currentUser.id');
>
> This needs a ! - this is why it's showing on profiles it shouldn't and
> not on ones it should ;)
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/TryGhost/Ghost/pull/3436/files#r15611071>.
>