Remove unused callback function definition
Use state pattern for SectionAssetEditView

``SectionAssetEditView`` had a bunch of unwieldy if statements to check
for state and perform certain actions.  Using a version of the
state pattern, similar to what's described at
http://robdodson.me/blog/2012/06/02/managing-your-backbone-views-with-the-state-pattern/
eliminated branching in the methods of ``SectionAssetEditView``
quite a bit.
First pass at text asset autosave

Save a text asset on the wysihtml5.Editor object's ``change`` event,
which is essentially fired as a result of a ``blur`` event on the
editor's element.

To reuse ``SectionAssetEditView.saveModel()``, add an optional
``changeState`` boolean argument to the method that can suppress
the changing of view state when the model is saved.

The behavior of the "Save" and "Cancel" buttons still needs to be
updated to take the autosave behavior into account.

Addresses #848
Feature for editing text assets

Initial acceptance tests for editing text assets and checking for
autosave functionality.  Based on the list at
https://github.com/PitonFoundation/atlas/issues/848#issuecomment-26346487

Addresses #848
Checkpoint for text asset autosave

Save text assets when the user leaves the editor and try to properly
roll-back when the user clicks the "Cancel" button.

Addresses #848
Delay autosave and abort on an explicit cancel/save

Use ``setTimeout`` to delay the auto saving of a text assets.
Then cancel a pending auto save if the user clicks the save or
cancel buttons.  This avoids sending multiple requests, or having
to undo a save after clicking cancel.

Update the signature of ``SectionAssetEditView.saveModel()`` to
accept a delay (in milliseconds), and a success callback.  These
are both needed to implement this feature.

Addresses #848
Enable deletion of assets through REST API

This is needed to cover the case where a user creates a new text asset,
leaves the editor, triggering autosave, and later decides to click
the cancel button.

Without calling the ``destroy()`` method on the Backbone model and
deleting the model on the server-side as a result, the model will
still be associated with the story and show up in the asset drawer
when the story is reloaded.

Addresses #848
Destroy asset after disassociating with section

When a user clicks cancel, after a newly-added autosaved asset
has been created, it should be destroyed.  However, this needs
to happen in a callback after the server has successfully
disassociated the asset from the section, otherwise a race condition
occurs and an exception is thrown on the server.

The race condition occurs in
``StoryIndex.asset_relation_update_object``, which gets triggered
when a ``SectionAsset`` model is deleted. The race condition happens
if that method tries to access an asset that has already been deleted.

Update the signature of ``SectionView.removeAsset()`` to allow for
passing a ``success`` callback that will be executed after the
server responds. In ``SectionAssetEditView.cancel()`` use this
callback to inititate the request to remove the asset on the server.

Addresses #848
Fix editor size jumping after resizing

Fix a bug with the auto-expanding rich text editor where it was
shrinking after the user clicked outside the component element.
This was because of a couple of reasons.  First the toolbar was
toggling between shown and hidden states on blur/focus. Second, the
stylehost elements were getting set to the height of the content
and not the height + extra space.

Clean up the way default options and callbacks are handled in
``RichTextEditorMixin.createEditor()`` and add a ``toggleToolbar``
option that, if set to false, will always show the toolbar.

Addresses #844
s/storybase.forms/forms/

Avoid the verbose ``storybase.forms`` in this file because we create
the local variable ``forms`` and initialize it to equal
``storybase.forms`` at the top of the module.
s/storybase.MutexGroupedInputForm/storybase.forms.MutexGroupedInputForm/

For consistency.  Also create a local variable at the top of the
self-executing anonymous function in buider/views.js to make the
following code more compatible with an AMD-based solution if we ever
go that route.
Remove RichTextEditorMixin

This really didn't make sense as a mixin.  Instead, create a new
class, ``storybase.forms.RichTextEditor``, that extends
``wysihtml5.Editor`` but whose contstructor is like the old
``RichTextEditorMixin.createEditor()``.  This is also makes the
the editor more reusable across components, instead of just being
available in the builder.

Also clean up some of the internals for the initialization methods
of the editor.
Reduce font size and margin of asset editor headers

In order to try to reclaim a bit of veritical space in the asset
editor, make the font the same as that of an h4 element and get
rid of the top/bottom margins.

Addresses #846
Make sure body textarea is visible on edit

Make sure the ``body`` field's textarea element is visible when
editing a text asset before initializing the rich text editor.

This is needed because the wysihtml5 editor hides the textarea
by setting it's display property to ``none`` when it is initialized.
However, if the user clicks the "Cancel" button, the editor never
unhides the textarea element before the editor is destroyed.

The next time an editor is initialized, it copies the CSS properties
from the textarea, causing the editor to be hidden erroneously.
Don't load debugging version of Google Analytics script

It really clutters up the debugging output in the console.  This
can be edited when needed in development and doesn't need to be
always loaded, even in debug mode.
Refine text asset autosave test scripts

Make sure saved data is preserved across page refreshes.

Remove title when referencing the first section in the section list
to make test less brittle.

Addresses #848
Fix project and organization search in admin

The search field needed to refrence the fact that it's on the
translation relation, not the Organization/Project model itself.
jslint fixes

* Remove unnecessary semicolon
* Use dot-notation instead of array notation
Squash repeated auto-saves

When editing the HTML of a text asset, the ``change:body`` event
will be firing much more frequently. Only save when things have
stopped changing.

Addresses #848
Only call renderAssetViews() once on sync

Instead of binding ``SectionAssetView.renderAssetViews()`` to the
``sync`` event of the view's ``assets`` property, only bind it
when needed, prior to calling a ``fetch()``.  This prevents
unneccesary re-rendering of the asset views every time an asset is
saved.

Addresses #880, #847