[wip] open up the possibility to generate rulesets dynamically

This will allow us to do something like:

```javascript
var locator = new Locator({
    rulesetFn: function (bundle) {
        if (bundle.pkg && bundle.pkg['jsnext:main']) {
            return { /* create synthetic rules for ES6 packages */ };
        }
    }
});
```

tl;dr: we can read package.json for a package, and generate rules the way we want it based on the package information without having to have a designated ruleset.
Just to confirm, this will cache the results of `rulesetFn`, yes?