[READY] availableWidths as a function

Alternative implementation of #21.
It adds 2 more commits that enables `availableWidths` to be either an array of values or a function.

![](http://i.imgur.com/havYkm4.gif)