Add a pretty-print debug method to the Utils extension
Improve loading and add the Preferences extension.

Now when loading an extension (of any type), a callback can be specified
to be called on load completion. Loading of further extensions will wait
for this callback to return before continuing.
Rename Preference get and set API
Add filetype detection to input and preview panes
Improve the Preferences extension

Preferences.set() now allows multiple keys to be set to the same value
with one call, and Preferences.get() handles invalid keys more robustly.
Add .gitignore