Optimize Layout#getViews

Defer generation of comprehensive views collection until it is needed.
Optimize Layout#getViews further

`_.where` always returns an array, so there is no need to wrap the
result in an array and immediately flatten it.
Optimize Layout#getViews still further

Avoid "unchaining" the comprehensive views collection, and use the
chained version to calculate the correct result.
Merge pull request #326 from jugglinmike/optimize-getviews

Optimize Layout#getViews