Added the capability to nest layouts by tweaking the code a bit:

* The "entry point" for layout inclusion doesn't change: it's either declared in the template given to `compileFile`, given as an option to `render` or as a global `defaultTemplate` option
* However, `cacheLayout` will now check whether the loaded layout template declares a layout (using `{{!< LAYOUT}}` as in templates). If it does, this "parent" layout will be loaded and again, checked for any declared parent layout. The layout hierarchy is loaded up to the top recursively, until no layout declaration is found. This recursion will result in a layout stack listing all layouts templates, from the outermost to the innermost, required to render the page template.
* For each loaded layout, the parents layout stack is cached, just like it was when the code managed a single layout
* Consequently, `render` has been adapted to work with a template and its layouts stack, rendering each layout in the stack with the "concatenated" rendering of previous template/layouts.
Refactored layouts to be a bit more DRY - illustrates the use of nested layouts
Added examples for nested layouts with two levels of nesting, for both in-options and declarative layouts
html-struct -> veggie|fruit -> (veggie|fruit)-details
Added simple tests for nested layouts
Added a note about nested layouts
Fixed a cache problem by duplicating the layout stack when caching it. Otherwise the reference is shared between caches and we can end up rendering too many layouts.
Merge branch 'feature/nested-layouts' into feature/nested-layouts2

Conflicts:
	example/app.js
	example/views/layout/default.hbs
	example/views/layout/veggie.hbs
	lib/hbs.js
fix default tests
Merge branch 'master' of github.com:barc/express-hbs