Use `with_mapping_count` instead of pack and `list.length`

* Fixes script errors anytime section tree is rendered
Avoid error when introducing a new widget in InnerNav

* Previously, `widget_list` got `undefined` entries, due to splicing in
  `widget_list[widget_list.length]`, which is undefined.
Remove invalid `Document#type` attribute specification

* This caused strange issues, like `Directive#sections` containing a
  `new can.List(['D','o','c','u','m','e','n','t'])`
Don't show Map/Make Relevant for Section on Directive pages
Add "View Section"/"View Clause" to Section/Clause tree
Add `directive_sections` and `joined_sections` to Directive

* Without these attributes, some DirectiveSection objects may not use
  CMS.Models.DirectiveSection (and be plain can.Map objects instead)