Inital optimisation to loading

Part of the changes for #4.
The initial mutation observer has been added but does not yet do
anything.
The loading process has been tidied up and now makes use of the dynamic
loading from the chars file.
MutationObserver implemented to fix #4

The mutation observer has been implemented to give much better
performance.
Chars file completed

The chars file is now up to date and new IDs have been added. Currently
this leaves the options in a broken state however this will be fixed
when issue #3 is implemented.