Stop writing current deck to localStorage

I don't really see what purpose this serves since it's never accessed.
It's maybe there for the future, but I'm dubious of its usefulness.
We're probably better off dumping everything as one json blob under one
key so it only has to be parsed once (on intialization).

Or maybe I'm an idiot and that's a terrible idea.
Store current card index for each deck in localStorage.

Instead of automatically skipping forward when changing decks, change
to the previously used card (or 0, or random, as the case may be).

Also, looking at how localStorage works, it seems that writing
everything we need to store to a single json blob might not be a
completely terrible idea. Everything is stored as strings, and the only
time we should really need to access it is reading (when page is
opened) and writing (just before page is closed).
Don't write long URLs to the answer box or word list.

This loads the full size images in the word list as soon as the deck is
selected. Because the image detection/cropping/resizing occurs when
each card comes up for the first time, there's no good way currently to
do this.

A solution would be to process all images as soon as the deck is
selected, and to this end it might be a good idea to be marking images
(especially on decks with mixed content) in the deck syntax, rather
than determining whether or not a card is an image at runtime.
Fix loading of deck position, write localStorage onunload.

userData can be script-local, since it isn't exposed to angular/the UI
anywhere. It also makes calling userData keys that much shorter (7
characters!).

Drop use of $filter('json') for browser built-in JSON.stringify because
I don't care about browsers that don't have built-in JSON support.

Use window.onunload to write userData to localStorage, which is the
only time it should actually need to be saved, as it stays in memory as
long as the page is open.

Initialize deckIndex so that userdata will be modified before a deck
change occurs, and actually load deckIndex from parsed userData (it
doesn't have its own localStorage key any more).