[#558] Allow blocks to be addressable.

* Refactor SectionNodes into 'AddressablePaths'.
* Change table name to :cms_addressable_paths (always)
[#588] Refactor Addressable

* DRY up existing models that are addressable.
[#588]

* Add is_addressable which allows content to be placed into the site tree.
Ensure all addressable objects have .node field.
* Add .path to HtmlBlock
* Refactor: Create '.find_draft(path)' method for page.
* Create Responder to start clean up error handling.
* Refactor into find_draft by id
* Add specific Cms NotFound error
* Refactor ContentController to remove extra error handling.
[#588] Add #find_live and refactor content controller.

* Allows Page#find_live and find_draft to raise exceptions, which simplifies controller.
[#588] Make Products directly addressable

* Initial prototype to verify how content blocks could be made addressable.
* Refactor addressable into a concern
* Path can now be dynamically generated using :slug and Class#path
* Addressable content has a page_title which is the name.
* Move parent look up behavior to ContentController. Allows any content type which is_addressable to be inserted
* Move view_as_page to ContentBlockController
* Move security into content block controller so blocks are publicly visible.
* Viewing content within a section is protected.
* path_field looks up path for default section from model class.
* Data loader has convenience function for adding sections for a given content type.
Document remaining tasks for addressable blocks.