Cleanup: Remove unused imports

We import a bunch of modules we don't use in a lot of files. Remove all
such imports.

https://bugzilla.gnome.org/show_bug.cgi?id=699967
JSHint: Allow multi line strings

JSHint defaults to not allow multi line strings, probably because of
buggy browser implementations.

This shouldn't affect us, and is handy when doing dbus calls so allow
this.

https://bugzilla.gnome.org/show_bug.cgi?id=699967
Cleanup: Remove type coercion compares

The '==' and '!=' operators in JS is a bit weird since it tries to do
automatic and sometimes unexpected type coercions instead of a strict
comparison.

In Maps we have decided to use the '===' and '!==' operators instead
since they do stricter checks.

This patch converts two cases where '!=' passed through review.

https://bugzilla.gnome.org/show_bug.cgi?id=699967
Cleanup: Add some missing semicolons

Semi-colons aren't strictly necessary in JavaScript, but not using them
can sometimes bite you, so we have decided to use semi-colons throughout
our code base.

Fix three cases where semi-colons were missing.

https://bugzilla.gnome.org/show_bug.cgi?id=699967
JSHint: Allow late function definitions

By default JSHint warns when you use functions before they are defined.
That's not really necessary, and it's sometimes convenient to define
functions in "backwards" order.

This patch makes JSHint only complain about using variables before they
are declared, not functions.

https://bugzilla.gnome.org/show_bug.cgi?id=699967
JSHint: Allow unsafe lineendings

This is meant as a way to protect oneself from beeing bitten by
JavaScripts Automatic Semicolon Insertion.

Since this is already covered by the "asi" option in JSHint and it
warns on existing code with operators first we'll relax this check.

https://bugzilla.gnome.org/show_bug.cgi?id=699967