Make plugin method call order deterministic

Previously plugin methods were appended to the global $.vellum object based on when the plugin was loaded, which was non-deterministic. Now plugin methods are attached to each Vellum instance at when it is instantiated. This has the additional benefit of reducing the overhead of plugin method calls because they do not need to check if they are enabled for the instance on which they are being called.

Fixes an intermittent bug in the interaction between ignore-but-retain and javaRosa plugins. Ignore-but-retain’s loadXML method could be called after javaRosa’s, which caused ignored itext nodes to be picked up by javaRosa.
Discard unreferenced itext when writing XML

Had to allow itext to be ignored/retained so it would not be discarded.
Set MediaUploader version
Fix global assignment

Should add jslint static analyzer to the test suite so silly errors like this are flagged.
Prevent integer and boolean values from killing XML writer