Chaining and query support; Edge offsets

Querying
-------------

Support for multiple subsequent add/subtract calls.
```js
 RangeA.subtract(RangeB).subtract(RangeC).add(RangeD).by(...)
```

Query String
-------------

Additionally, `moment.range` has been modified to also support with a range query string inputs which will be converted to a `DateRange`. Examples of this are as follows:

1. `(2009>>2012)`
2. `(2009>>2012)(^2008-2010)`


Subtraction Boundary
-------------

You can say whether you want to include/exclude the boundary dates during subtraction. 
```js
// 1 second offset from left/right of range
RangeA.subtract(RangeB).subtract(RangeC, 1, 's') 
```

Note: This can be done by the user quite easily, but I figured it would be awesome if the library supported it.