Empty Regions

As for today, when layout is parsing recursively through rows and columns it doesn't mind printing markup for regions that don't have content. This pull request changes that by recursively identifying empty regions (row/columns). It also introduces a region attribute called ```alwaysVisible``` that when set to ```true``` will cause a region wrapper to be output even when it has no content; mostly useful in cases when the extra markup is required for styling purposes.

> This pull request relies on the code introduced by the #133 pull-request, so it should only be merged if the other one has already being merged.
This looks like a good place to use async.detect() or some other asynchronous utility from async library.

Could you justify there would be no impact in performance by doing those blocking loops? Specially since this will run in all page requests.