[B+C] Add method to heal entities; Adds BUKKIT-3641

#### The Issue:
There is no easy way for a plugin to heal an entity, given that setHealth() will throw an exception when called with a value over its maximum health and the maximum health is now variable. Any current plugin code to heal something requires a conditional statement:
```java
// Given: int healAmount, Damageable entity
// One-line version
//  Note that this runs off of the PR screen
entity.setHealth((entity.getHealth() + healAmount > entity.getMaxHealth()) ? (entity.getHealth() + healAmount) : (entity.getMaxHealth()));
// Multi-line version
int newhealth = entity.getHealth() + healAmount;
if (newhealth > entity.getMaxHealth()) {
    entity.setHealth(entity.getMaxHealth()
} else {
    entity.setHealth(newhealth);
}
// Or some variation thereof.
```
#### Justification for this PR:
**Basically**, it prevents code duplication, and improves readability in plugins

#### PR Breakdown:
 - Implements the new heal(int) and heal(int, EntityHealEvent.RegainReason) from Damageable in CraftLivingEntity.
 - Implements these same methods in CraftEnderDragonPart using a referral to getParent(), as that is the pattern followed by other methods in the class.

#### Relevant PR(s) and other discussions:
https://github.com/Bukkit/Bukkit/pull/805
https://github.com/Bukkit/CraftBukkit/commit/2f68cb8b50d87a7f34fde84bae125c69bd920cdc#comments
BUKKIT-3641 - https://bukkit.atlassian.net/browse/BUKKIT-3641