Added potions and entity effect accessors

Don't merge yet - opening PR for public discussion and suggestions.
* Fixes #922
* Fixes #942
* Fixes #899
* Fixes #926

**What I've done**
- Entity effect map in `cPawn`
- Removed food-poisoning-specific code in `cPlayer`, instead opting for the centralized entity effect approach
- Implemented some entity effects
- Implemented milk
- Implemented drinkable potions
- Implemented splash potions (affect players and mobs)
- Fixed issue preventing players from instantaneously healing
- Cave spider poisons its victim

**What I have yet to do**
- All of the many TODO's I've left
  - Implement the rest of the entity effects
  - Wither skull implementation
  - Better potion splash effectiveness equation
- Fix splash potion color when thrown

**What I need help with**
- API hooks

Feel free to contribute at the `potions` branch. 
By strict C++ standard the union approach is invalid - you're assigning to one member and reading the other, the standard says it's undefined behavior. It works, because historically it was the way to do this, mainly in C, so for compatibility reasons the compilers allow this.