Add R.scanl

Found myself wanting this functionality recently. It's nice for building up a collection of intermediate values while reducing. Here's an example of where one could be applying an increasingly stringent set of filters to an ElasticSearch or MongoDB style query:
```javascript
> var location = {state: 'CA', city: 'San Francisco', zip: 94108};
> R.scanl(R.mixin, {}, [{state: trans.state}, {city: trans.city}, {zip: trans.zip}]);
<
[
  {},                                                     // no filter
  {"state": "CA"},                                        // just state
  {"state": "CA", "city": "San Francisco"},               // state and city
  {"state": "CA", "city": "San Francisco", "zip": 94108}  // state, city and zip
]

```
Inspired by Haskell [scanl](http://en.wikibooks.org/wiki/Haskell/List_processing#Scans)
That's a different assertion, in my mind. I can see something like this:

```javascript
it('throws if called with no arguments', function() {
    assert.throws(R.scanl, TypeError);
});

it('returns a function which throws if called with no arguments', function() {
    assert.throws(R.scanl(R.add), TypeError);
});
```