Updated template loading functionality

Turns out, `inject` runs synchronously. Therefore we don't need to have
a callback, instead the template loading function can just return a
compiled element.

Fly-by:
Since components should all contain their own tests, I've set the
.jshintrc globally.
Added tests for the uploadLink