Add / Subtract months with no overflow

This PR answers both issues #236 and #217 - in order for the tests to all pass on Travis, it depends on another PR I submitted this morning fixing a `diffForHumans` issue that popped up after the new year.

Although this is influenced default PHP behavior, I also think it is worth considering to add some sort of argument flag to the "base" add and subtract methods - the behavior seems really counter-intuitive as it is, and it doesn't feel nearly as semantically satisfying to preserve it.

Just a thought - perhaps something like the following, where the overflow method would be protected:

```
public function addMonths($value, $useDefault = false)
{
    return $useDefault ? $this->modify((int) $value . ' month') : $this->addMonthsNoOverflow($value);
}

Carbon::now()->addMonths(2); // intuitive behavior
Carbon::now()->addMonths(2, true); // PHP default behavior
```