Dynamically generate sub-page lists in megamenu

I also had to alter the call to ``reverse`` in
``NewsItem.get_absolute_url`` and attach the news item apphook to pages
*IN EVERY LANGUAGE* in order for the URL reversal to work correctly for
the news item detail pages in the menu.

Addresses #664
Move megamenu templates to the menu subdirectory

Addresses #664
Adjust where space is applied in builder toolbar list items. Seems to fix anomalous issue in Chrome without affecting other rendering. (#649)
A more dynamic, DRY megamenu template

These commits try to clean up the megamenu templates to avoid repeated
markup and hard-coded URLs.

I made the ``menu/megamenu.html`` template be included using the
``show_menu`` template tag instead of ``include``.  This allows the URLs
for the menu items to be generated from the back-end instead of
hard-coded in the templates.  This also lets us rely on the menu system
to tell us if the menu item is active instead of matching megamenu and
body classes (though I left in the wiring for the body classes).

I added a ``STORYBASE_MEGAMENU_ITEMS`` setting to specify which items
are in the megamenu and a template filter, ``megamenuitems``, to reduce
the ``children`` list passed to the template by ``show_menu`` to just
the desired items.

I broke each megamenu item's additional content into separate templates
that all inherit from ``menu/megamenu_extra_base.html``. See the comment at the
top of the ``menu/megamenu.html`` template for how this is wired up. By
default, these templates show the sub-pages and the top-level page's
teaser attribute.

I made the ``CMS_MENU_TITLE_OVERWRITE`` ``True`` by default in the
``settings`` module, allowing admins to specify a different title for
pages when they're displayed in the menu.

Closes #664
Adjust story builder button width in megamenu
Remove drop shadow between megamenu columns

Per a request by @jwirfs-brock
Handle when news item apphook isn't connect

NewsItem.get_absolute_url won't be able to reverse the item URL if the
AppHook isn't connected.  Catch the ``NoReverseMatch`` exception and
return None so things don't break.
Return an empty string rather than None

It looks like the return value of ``get_absolute_url`` needs to be
iterable
Some additional padding at bottom of viewer body so it clears the fixed-height footer. Also increase line-height in viewer title and add a little padding to body top. (#627)
Custom megamenu markup

@jwirfs-brok didn't like the inconsistency of the large teaser as shown
with the ``legend`` class.  So, the teaser text gets replicated here and
split into a heading and paragraph.

An improvement would be to find a clever way to split up the first and
subsequent lines of the teaser.
Render top and footer navigation from the menu

Instead of hard coding link text and URLs in the upper-right-hand corner
and footer, menus, generate them using the ``show_menu`` template tag.

I like this because it breaks out chunks of markup in ``base.html`` a
bit more and should get rid of annoying execptions when a page doesn't
exist in the CMS.

It also makes the footer menu automatically match the megamenu.
Update changelog to reflect menu improvements
Update styling for blockquote tags in viewer (aka, quote assets). (#565)
Prevent duplicate asset assignments

Prevent multiple assets from being assigned to the same section and
container.  The likely scenario that causes this is a user opening the
same section in multiple browser windows or tabs.

This fix does a few things:

* Adds a ``unique_together`` constraint on the ``SectionAsset`` model
  using the ``section``, ``container`` and ``weight`` fields.  The
  ``weight`` field is included because some stories created in the Django
  admin don't have a container selected, so we differentiate between them
  by the weight field.
* Adds a data migration to fix existing ``SectionAsset`` instances that
  violate this constraint.  The data needs to be clean before adding the
  the ``unique_together`` constraint.
* Updates ``SectionAssetResource.obj_create`` to catch the
  ``IntegrityError`` raised when the the ``unique_together`` constraint is
  violated and returns a 400 error to the client.
* Updates the ``SectionAssetEditView`` Backbone view to handle the error
  returned by the API endpoint, show the user an error message, and refresh
  the UI to show the previously added asset.

Addresses #535
Tweak microcopy for error message

Slight update to copy based on suggestions by @jwirfs-brock.

Addresses #535
Clean up SectionAssetEditViews

``SectionAssetView.renderAssetViews`` created new SectionAssetEditView
instances each time it was called.  That seemed not only wasteful, but also
left ghost views that still responded to events.  This commit keeps track
of the child views and only creates new views when needed. It also calls
the ``close`` method on the sub-views to clean up their event bindings.

The sub-views for asset editing are tracked through a ``_assetEditViews``
object, with container names for keys.  The creation of
``SectionAssetEditView`` instances was also factored out of
``SectionAssetView.renderAssetViews``

Updated ``SectionEditView.removeAsset`` to remove the
``SectionAssetEditView`` when an asset is removed from the section.
``removeAsset`` gets called by ``changeLayout``, so the view is cleaned up
when the layout is changed as well.

I also had to update ``changeLayout`` to handle the case where there are no
asset models bound to the ``SectionAssetEditView`` instances to just remove
all the sub-views.

Finally, I renamed ``SectionAssetEditView.remove`` to
``handleRemove`` because it was clobering Backbone's ``View.remove``.

Addresses #671
Add a "quotation" class to story quote assets. Make the pull-quote style a mixin and apply to quotation assets. Other blockquotes in stories get a bordered-box treatment. (#565)
Use django-compressor to compress and version

Use the Django Compressor app to compress and version JavaScript and CSS
assets.

For now, we're just compressing and versioning style.css and our custom
Backbone apps.

Ultimately, I'd like to move to using RequireJS for our Backbone apps.

Addresses #624
so i'm having some trouble getting this to do quite the right thing, even in the scenario wherein we don't try to recover  the story template's placeholder title/suggested title on load. summary of behavior:

- when creating a new story from a template, the first section title gets its template-defined placeholder
- when creating a new section, that section gets a generic 'Section Title' placeholder
- when loading a saved story in which a section lacks a title, that section isn't getting *any* placeholder at the moment.

that last could be handled by the handlebars template, but perhaps we'd prefer it to live in the view?

also i updated the section list view: when a section has no title it displays 'Untitled Section' rather than 'New Section' ... seemed a little more appropriate. however, this is also handled in the handlebars template rather than in the view code.
In story viewer, loading a section updates Backbone's router location without creating a new entry in the browser's history. Addresses #487.