Statistics/Achievements API addition: Events + added getter + setters to Player

**Helper PR for:** https://github.com/SpongePowered/SpongeAPI/pull/220
There is another PR for getting `Statistic`s and `StatisticType`s: https://github.com/SpongePowered/SpongeAPI/pull/317

Added Events
- `GrantAchievementEvent`
- `StatisticChangeEvent`
  - `StatisticChange`
    - `StatisticChangeType` (`ADD`, `SET`, `RESET`)

Added methods to `Player`
- get, set, add, reset, getAll, resetAll `Statistic`s
- has, grant, revoke, revokeAll `Achievement`s

This PR assumes, that there are only `Statistic`s that use `Long` values.

**TBD**
* Remove `StatisticChangeType` / call event only for `ADD` and not for plugins.
* `StatisticChangeEvent` allow `StatisticChange`s to be added by plugins, so that they can be part of the event handling process and are only applied at the end of the event handling process if the event is not cancelled `Iterable`->`Collection`
* Replace `StatisticChange` by an interface
* Move methods from `Player` (online) to `User` (offline)

How would you prevent one of the statistic changes? Is the iterator returned by the method below mutable or would you set the statistic change to the old value?