Implement team status image review.

We now send the browser a bas64 encoded version of the image, which
it can then display to the user, along with the md5sum. The md5 is
the 'value' that gets sent back when the reviewer sets a review
state, and it's this that gets compared to the draft value.

This patch therefore removes the exclusion of images from reviews,
including the rejection of attempts to set their review state, and
the related tests.

This patch does not modify the location of the images once reviewed,
relying instead an external mechanism to do this. The only way the
IDE could do this move is if the web server had write access to the
folder they were eventually served from, which would be a bad thing.

One possible issue that this setup leaves us with is the case where
an image is reviewed & the team uploads a new image before the
reviewed one goes live. This would leave the team without an image
until the new image had also been reviewed (and made live).

Since there are md5 checks all over the place, I don't believe that
the unreviewed image would go live in its place (ie, without review),
however the team would remain in the no-image state for longer than
is ideal.

Change-Id: I735dc9dde69f78fc94a3809fc5e257681fbf5e7e
Fix a styling glitch in login feedback.

Previously, this strong affected the warning tag
in the error feedback as well, which it shouldn't
have done.

Change-Id: If9939338b8c9045f48ce046defd5d813fca10d5e
Avoid private property access by adding a helper method.

This exposes the project list via a helper on the projpage, which
is probably what I should have done to start with. As this new
method is more tolerant to empty conditions, also use it in the
project existence check which could otherwise explode.

Change-Id: I5d66a2b13b7d684d26253b118f730df2ff4b307d
Make it easier to re-download a zip.

Change the revision part of the export message to be a direct link
to the zip file. This provides the user with more options to
download the zip if they want, or if for some reason the hidden
iframe download doesn't work.

Change-Id: I854d71d95c89a37e5c5618753309581a2b07f8fc
Handle logout using member functions not anonymous ones.

This makes it easier to change the functionality nicely.

Change-Id: I849464fb58d0b6b7123978aa8b2dd71d23991a97
Make eflist an Object.

This is how its used, and will thus avoid iteration issues in IE.

Change-Id: I7f832bcaab084fd5585138d0876e938f69ee8baf
Remove jsdiff file that hasn't ever been used.

Change-Id: I859402266b4e64469cb8cd7854b0255d371e2710
Fix a whitespace irregularity that appears to have crept in.

Change-Id: I248f4b64c5377439c5667e4afaa6b5bc78f30848
Fix #1571: Specify the line-height so autosaves line up.

Previously, the line-height was whatever the browser defaulted to,
thus allowing for variations in the display position of the autosaves.
By specifying this value, and making it match the inverse margin of
the autosave links, we ensure they're in the right place vertically.

Change-Id: I4d2a871499ab1ea1d794473541ef4fd51382b99b
Improve boolean test checkers by using equality helper.

This means that the expected will be shown as well as the message,
which is very useful when debugging.

Change-Id: I4294dc04e3592e624f40236f9c324bcf301f07ab
Fix #1570: Only fetch the repo once to ensure consistent state.

When we fetch the repo, we clean it up a bit & update it vs its
master repo. Clearly we don't want to be doing this for each of the
files we've been asked to delete, as the cleanup would undo the
deletion we just specified.

TODO: review other usages of the repository() function in this
module for similar issues.

Change-Id: I8060fa9c3f5e369560c24e49b81863d87deaf9be
Fix undeletion of multiple files.

This is the same issue (and fix) as was the case in #1570, namely
that we were calling for the repo to be cleaned & updated before
each file, and thus negating most of what we were doing. Also
extend the test I created earlier to check the undelete cycle.

Annoyingly, I've a feeling this is the first test that checks this
sequence of calls.

Change-Id: I7af252243e8edef1643c3abc62d4382e162a530e
Remove further redundant repo fetches in the file module.

These don't appear to have been causing any issues, but are most
definitely inefficient.

Change-Id: I011a0e9ba52d3800c95812f1af97bdce9a6669d6
Minor code syle fixes.

Change-Id: Ie81c0db43bb9682af7de059617a287c4da547c3f
Merge "Improve boolean test checkers by using equality helper."
Merge "Make it easier to re-download a zip."
Merge "Fix #1571: Specify the line-height so autosaves line up."
Merge "Fix a styling glitch in login feedback."
Merge "Avoid private property access by adding a helper method."
Merge "Minor code syle fixes."