[Fix #67] Add `widthInterpolator` option

This allows the widthsMap to be dynamically created using an array of
availableWidths and a function, rather than having to build an
availableWidths object outside of Imager.

This allows you to do this:

```html
<div class="delayed-image-load-16x9" data-src="http://ichef.bbci.co.uk/images/ic/{width}/p01mzt0r.jpg" data-alt="alt"></div>
```

```js
new Imager('.delayed-image-load-16x9', {
    availableWidths: [160, 240, 320, 480, 560],
    widthInterpolater: function(w){ return w + 'x' + (i / (16/9)); }   
  });
```
To build a url that looks like: [http://ichef.bbci.co.uk/images/ic/**160x90**/p01mzt0r.jpg](http://ichef.bbci.co.uk/images/ic/160x90/p01mzt0r.jpg)