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
IMO, that's just a bug waiting to happen. If this is used for both inviting users AND the role drop down on the user profile, then it could display the wrong things if the store ever gets an extra role in it. Not just the owner role, but if the current user is an editor then the store will have the editor role, and whilst they can't see the dropdown on the profiles, they do have access to the invite user dropdown.

It also means if we change the permissions for this, then the client side isn't honouring what the API is returning, and we have to update both all the time.