Added markdown support

You can now format titles and card content using markdown. Changes the intro cards to show this off
Added support for images

We can now have images in the questions for flashcards. Updated the readme to
demonstrate how to do this.
Moved to namespaces

Instead of having a prefix for the class, we now have a namespace called SelfTesting
Moved parser variables to the SelfTesting namespace

Types are now shared across all classes rather than being tied to a parser
Fixed shuffle

Changed to a better implementation of fisher-yates
Reorganised methods

Grouped methods more logically
Fixed render regression, refactored init code

1) Moved the init code from index.html to selftesting.js
2) Renamed ids to fix regression in css
Incorrect cards only displayed after others have been seen

If a card is marked as incorrect, it is now only shown after all other cards have been seen.
Fixed display issues with md and parsing errors

1) We need to parse markdown element by element in order to ensure we get the
right output, we now do this.
2) Elements that cannot be parsed now get a special mention
Cleaned up code

1) Externalised most strings
2) Removed commented out code