Make sure comments are defined when inserting recording/RG edits

This allows passing comment => undef to the edit constructor, which
is consistent with the edit data allowing this field to be Nullable.
s/QUnit\.equal/equal/g
MBS-7221: Not possible to add empty mediums via add-disc dialog
MBS-7222: mediums that aren't loaded don't validate because they have no tracks
Make sure .styled-buttons get [disabled] styling
Make the submit button .positive
Factor out some common test code
Add a test for auto-opening the add-disc dialog
Fix obscure issue where bubble would appear atop the page
Make the "Copy all track changes" checkbox also uncheck everything
Merge branch 'beta' into release-editor-gsoc
Add code missing from 0b09d74
Generate edits for non-loaded media

This allows people to reorder/edit the formatID/name of mediums that
haven't been loaded/expanded.

The code that generated these edits wasn't working, because it just
completely skipped any mediums that weren't loaded. We no longer do
this, but still retain checks that prevent empty medium-create edits
from being generated.
Loading a medium shouldn't overwrite its original edit data

This can cause issues if the user makes changes to the format/name/
position of the medium, and then loads it. The original edit data
used for comparison is overwritten once the tracks are loaded,
because it re-saves the medium at its current state.
Show track title in AC bubble
Don't null the bubble target after it's hidden

Since the contents of a bubble are wrapped in a "with" binding, this
has the effect of removing the previous contents, which is bad for
things like the AC bubble on FormHandler forms, because they contain
all the hidden inputs that need to be submitted.
Also escape '/' in Lucene queries

Since it seems to indicate regexps. Otherwise we get BAD REQUEST from
/ws/2.
Try to match against recording names with ETI better
Also output response headers when external_search fails

This may help us further debug all the "Failed to decode JSON search
data" issues.
Merge remote-tracking branch 'bitmap/output-search-headers' into beta

* bitmap/output-search-headers:
  Also output response headers when external_search fails