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)
* More events that extends `StatisticChangeEvent`

IMHO, this should return **either** `0` or `Optional.absent()`. Implementations can ensure that it's consistent.