Move <script> tags to top of body

Having <script> tags at the bottom of the <body> caused some widgets
that relied upon JavaScript to fail, as the required libraries had not
been loaded at the point where the widgets were added to the page.
Refactor edit handler JavaScript integration

Edit handler panels which required JavaScript provided the JavaScript in
a `render_js` function, the output of which was collected together and
inserted after the `<script>` tags in the footer. Now that the
`<script>` tags are at the top of the `<body>`, these collected
initialisations were failing when they could not find the elements.

A new set of widgets have been created: `AdminPageChooser`,
`AdminImageChooser`, `AdminSnippetChooser`, `AdminDocumentChooser`.
These widgets output the initialisation JavaScript in a `<script>` tag
immediately following the widget itself, assuming that the required
external libraries and scripts are now included further up in the page.
This is how the GeoDjango fields from Django work, as well as many other
third party widgets. It makes writing integrations for arbitary widgets
easy, as they do not have to know anything about Wagtail edit handlers.

This also removes the need for the `fixPrefix()` JavaScript function
wrapping all field initialisers. As the fields are initialised as they
are inserted in to the page, any scripts included with them are inserted
at the same time. Additionally, the `__prefix__` placeholder in empty
form fields is also present in the initialisation scripts, and is fixed
at the same time. A template tag `escapescript` has been added to help
with this, to prevent `<script>` initialisation blocks from prematurely
closing the `<script type='text/django-form-template'>` tags.
Merge branch 'bug/missing-migration' into bug/scripts-at-bottom

* bug/missing-migration:
  Add missing migrations
Fix migrations after merging in missing migrations
Fix Python 2.6 compatibility
editing a page no longer redirects to explorer. success messages added to locking/unlocking process.
corrected redirect
mistake
creating should also remain on page after submit
Merge branch 'master' into return-to-edit
updated tests
Catch 'jav\tascript:alert("XSS")' as a bad URL

The URL checker from html5lib was used as inspiration. As html5lib is
based on the same ideas that browsers (should) use for parsing and
checking, this solution should be much more robust.
Removed 'wagtailsearch.indexed'
Updated deprecation warnings
Fixed bad import
Tabbing from password field goes to Submit
Merge pull request #697 from davecranwell/return-to-edit

Editing/Publishing/Submitting a page no longer leaves the page editor
Changelog for #697
Release note for #697
Changelog for 1377a6c