ko.toJS should not serialize functions, fixes #251

Conflicts:
	src/subscribables/mappingHelpers.js
Replace ko.expressionRewriting.parseObjectLiteral with a parser that's three times as fast and 2/3 the size (over 400 bytes smaller, minified).
It also eliminates extra white-space in the string, requiring fewer 'stringTrim' calls, and strips the quotes from keys so they're consistent.
The spec changes are about the removed white-space and quotes, and a new spec shows how removing spaces and quotes fixes a problem.
Also includes an improved stringTrim.
Update ko.expressionRewriting.preProcessBindings:
Add support for function-wrapped binding values (based on option).
Add support for dynamically created binding handlers (like my key.subkey plugin) using ko.getBindingsHandlers.
Add support for preprocessing bindings using <handler>.preprocess.
Add specs for binding preprocessing.
Add comments for the regular expressions used in parseObjectLiteral. Add comments about current parsing issues (and a failing test for one). Alter one of the expression rewriting tests so that it fails if the codes doesn't have the regular-expression-literal match.
Partially merge '833-paglias-toJS-fixes'
Updated parseObjectLiteral to parse a slash as either division or regex.
Remove unneeded parentheses in the regex.
Clarify that "two way bindings" is an internal implementation detail, not a public API
Merge branch 'version-3.0.0-development' of github.com:SteveSanderson/knockout into version-3.0.0-development
Merge pull request #909 from SteveSanderson/indi-binding-support-preProcessBindings

Independent binding support: preProcessBindings updates
Move dependency-related binding tests to a new file. Add a couple binding tests.
Modify applyBindingsToNodeInternal so that it accepts a "bindingContext" instead of a "viewModelOrBindingContext". Move the logic to conditionally create a binding context from applyBindingsToNodeInternal to each of the external applyBindings* functions. Note that this breaks the current implementation of observable view models, but that's something we can fix later (see #485).

Make the "shouldBindDescendants" return value of applyBindingsToNodeInternal exported so external plugins can access it when calling ko.applyBindingsToNode.
Use valueAccessors option in bindingProvider and templateRewriting. In bindingAttributeSyntax, use new binding format internally and provide conversions from old format for backwards compatibility.
Remove support for marking value-accessor funcions in old-style bindings using ko.bindingValueIsAccessor.
add optionsAfterRender binding parameter for the options binding. This works similarly to the afterRender option for foreach, except that the first parameter is the option DOM element, instead of an array of elements. The second parameter is the corresponding array item, or `undefined` for the caption option.
Fix Google closure compiler warnings, #486.
Allow optionsAfterRender callback to apply bindings to option.
Re-add the template test using getBindings, with adjustments to the counts.
Merge pull request #933 from SteveSanderson/indi-binding-support-bindingAttributeSyntax

Independent binding support: function-wrapped binding values
Replace allBindingsAccessor function with allBindings object with get and has methods (function interface is maintained for backwards compatibility only).
Rename wrapValue/unwrapValue to makeValueAccessor/evaluateValueAccessor to avoid confusion with ko.utils.unwrapObservable