Refactored layouts to consider popularity

Considers popularity when deciding on tile sizes. More popular -> larger tile.

Notes
- Added underscore.js
- The prior layout representation lacked a representation of position/ordering, leading tiles to be visually grouped by size. This new representation allows control over not only block sizes, but also insertion order. I've included a couple sample layouts.
- We no longer checks for specific size strings, allowing one to resize blocks to their heart's desire.