Selector API

Selector API. Closes #294.

- [x] Add full selector interface
 - [x] `String getVariable()` - ('p', 'a', 'e', 'r' in default selectors)
 - [x] `Map<String, String> getArguments()` - get arguments
 - [x] `List<Entity> resolveSelector()` - resolve selector to entities
 - [x] `String asString()` - turn selector into a string
 - [x] `SelectorBuilder builder()` - modification builder
- [x] Change Message.Selector#getContent() to return a Selector
- [x] Change MessageBuilder.Selector#selector() to take a Selector
- [x] Add selector generator
 - [x] Builder for selectors
 - [x] Other stuff?
- Possible stuff, need comments:
 - Add utilities for parsing commands with selectors
 - Custom selectors by plugins