Per method batch disabling

This is only a preview. Tests and more docs are forthcoming. I just wanted to get the other maintainers opinion on this interface.

The per-method batch disabling will be configured in the frontend and it's done through the Api class constructor like so:
```
var api = new Api('/api', {noBatchingForMethods: ['slow-poke']});

api.exec('ordinary-method', {boringParam: 'boring value'}); // this method will be batched

api.exec('slow-poke', {huh: 'uh?!'}); // this method won't be batched
```
I don't like `isArray` helper. Two reasons:
  1. It's simpler to check boolean using `typeof`.
  2. The better way to find out the array instance is to use `constructor` property.
```javascript
function isArray(arr) {
    return arr.constructor === Array;
}
```
Also I don't like the idea to set up options which user didn't specify at all.  IMHO we should do following:
```javascript
this._options = options || {};
```
and in `api.exec` we can just check the noBatching option.
```javascript
execOptions = execOptions || {};
var noBatching = this._options.noBatching;
var disableBatchingGlobally = typeof noBatching === 'boolean' && noBatching;
var disableBatchingForMethod = execOptions.noBatching ||
    noBatching && [].concat(noBatching).indexOf(methodName) !== -1;

return disableBatchingForMethod || disableBatchingGlobally ?
    this._execWithoutBatching(methodName, params) :
    this._execWithBatching(methodName, params);
```
Looks a little bit cleaner for me. 

What do you think?