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
Gah, "don't return owner unless it's asked for". Sorry, brain's in two
places right now


On Wed, Jul 30, 2014 at 3:21 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 sure we can just move the "don't return users unless it's asked for"
> bit into the findAll for roles
>
> You've lost me!
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/TryGhost/Ghost/pull/3436/files#r15613151>.
>