Out of browser support and test runner

The changes are as discussed in the original pull request #712 -

* Removing the naked DOM references in the externs file.
* Fix the naked DOM references in the immediately executed blocks of code.
* Changing the JSON reference test to use typeof(JSON) instead of window.JSON.
* Split specs which are testing mixed DOM and non-DOM functionality (dependentObservableBehaviors/editDetectionBehaviors)
* Fix the naked DOM references in the jasmine extensions
* Add a node test runner and run it as part of the CI build

End result -

The single Knockout build now runs inside node complete with a test suite of 322 (passing!) tests.