Implement Grantable rewards [BREAKING]

// BREAKING
This commit changes the return types of the following two methods in
the Arena interface (and ArenaImpl class):
- getEveryWaveEntrySet()
- getAfterWaveReward()
Both methods previously had return types involving ItemStack, but have
been converted to Grantable instead.
// BREAKING

This commit converts the entire rewards system to the new Grantable
system. As a result, the per-arena rewards sections in the config-file
are now fully compatible with the Grantable system, so it is finally
possible to use permissions (and potion effects) as rewards.