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
Merge branch 'bug/scripts-at-bottom' of https://github.com/takeflight/wagtail into takeflight-bug/scripts-at-bottom
Make AdminPageChooser's content_type default to Page if left unspecified
make InlinePanel check for the existence of an onAdd handler, so that we don't have to pass it an empty one
Fix page permissions formset in groups edit interface to work with refactored javascript and AdminPageChooser widget
Use jquery onready handlers so that editor's picks JS doesn't have to be placed after the HTML; fixes the editor's picks edit page. Also remove redundant closure-wrapping from page_permissions_formset
Fix page chooser on sites interface
Remove last remnants of fixPrefix.

In page_permissions_formset, fixPrefix is a null operation; in InlinePanel.buildExpandingFormset, it's only used within the function body (no longer passed on to the onAdd handler) and only needs to be applied to a single string, so wrapping it in an inner function is redundant.
Merge branch 'kaedroho-fix-form-submission-encoding'
Merge branch 'kaedroho-fix-fill-filter-zerodivisionerror'
Fix migration dependency
Merge branch 'takeflight-bug/scripts-at-bottom'
release notes for #598
Merge branch 'kaedroho-issue-786'
Merge branch 'fix/foreign_key_warning_only'
Fixed focal point indicator positioning

The focal point indicator is always positioned as a percentage inside
the div.focal-point-chooser block.

For thin images, the image may not exactly fill this block causing the
indicated focal point to be too wide and often not even cover the image.

This commit fixes this by making sure the width and height of the
div.focal-point-chooser block are always the same as the image, even if
the image is too small.