Expire instances from the identityMap

Rationale
-------------
Currently if we want to expire model instances from their constructor's identity map (cache), we use the pattern:

```js
var idsToExpire = [10, 20, 30];
idsToExpire.forEach(function(id) {
  MyModel.create({id: id}).expireNow();
});
```

This pattern has the disadvantage that for ids that do not belong in the identity map of ``MyModel``, we create unnecessarily instances of ``MyModel``. The unnecessary creation of instances also exhausts cache positions and fills the cache with empty redundant objects which also puts pressure on the cache logic to evict useful instances. With ``findAndExpire``, the system expires only those passed ids that are actually in the identity map without creating unnecessary objects.   

Usage
-------------
``findAndExpire`` can be invoked for a single instance: 

``MyModel.findAndExpire(10)`` 

or for multiple instances:

``MyModel.findAndExpire([10, 20, 30])``

The example in the previous section can be rewritten like this:

```js
var idsToExpire = [10, 20, 30];
MyModel.findAndExpire(idsToExpire);
```

@jish @shajith @jamesarosen