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
@rwjblue: would you chime in on this?


On Wed, Jul 30, 2014 at 3:57 PM, Hannah Wolfe <notifications@github.com>
wrote:

> In core/client/components/gh-role-selector.js:
>
> > @@ -0,0 +1,16 @@
> > +import GhostSelect from 'ghost/components/gh-select';
> > +
> > +var RolesSelector = GhostSelect.extend({
> > +    roles: Ember.computed.alias('options'),
> > +    options: Ember.computed(function () {
> > +        var rolesPromise = this.store.find('role', { permissions: 'assign' })
> > +            .then(function (roles) {
> > +                return roles.rejectBy('name', 'Owner').sortBy('id');
>
> I'm basing that on what you said about owners:
>
> If you're logged in as the owner,
> then the Owner role is in the store, and so it'll be returned when you do a
> store.find
>
> The same would be true for editors surely?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/TryGhost/Ghost/pull/3436/files#r15615271>.
>