#326 - Access observables within a computed without subscribing:

Add `peek` function to observable and computed that returns value without subscribing.
Add `ko.ignoreDependencies` function that calls another function, ignoring any observables it accesses.
Alter templating tests to behave like real templating engines

The default templating engine returns an array of nodes that's not wrapped in
a container, and isn't a nodelist. The dummy templating engine in the test
always wraps the returned markup in a div, which masks some issues with the
templating code with empty memo comments that stick around in the markup.

After this change, all of the tests that are failing fail because of these
empty memo comments that stick around with the real templating engine due to
the templating result being returned as a bare array of nodes (which the memo
cleanup can't remove a node from).
Use a better util function in the templating tests
Fix small issues with merging template spec fixes by @seanami

* change makeArray to arrayPushAll (makeArray isn't exported)
* remove `div` wrapper from new tests (that were added since the original commit)
* fix other tests that were changed since the original commit
#440 and #144 (foreach, re-written template, data-bind)

Add spec to show that foreach correctly handles templates where first node has a binding.
Add secondary fix for #440, which will solve the original bug in a different way and possibly prevent other problems down the road.
#427 - remove template re-write cache
Fix spec failure that occurred only when *all* specs are run (not when just running template specs).
Really, we should stop using `testNode` as a global variable, as it introduces order dependencies between specs.
Merge branch 'master' into 144-fix-template-spec
#144 - arrayToDomNodeChildren/fixUpVirtualElements updates and specs

Add spec and expand comments on earlier change.
Fix up node list for any array with 2 or more items (rather than 3 or more).
Add spec for above.
selectedOptions should also update options inside optgroup
#352 - modify `hasfocus` binding to use `activeElement` to determine the focus state. This avoids the binding causing the current element to "blur" when switching to another window.
Rename fixUpVirtualElements to fixUpNodesToBeRemoved and amend comments, since the function now has a different role
use getElementsByTagName in selectOptions
Merge branch '427-remove-rewrite-cache'
Omit `ignoreDependencies` as it would not be used at present
Merge branch '326-access-observable-without-subscribing'
Changed the way the binding 'optionsValue' is executed.
#154 - make optionsValue and optionsText consistent using a helper function
also clean up some duplicate code
add a spec for new optionsValue functionality
* #341 - Added specs to demonstrate correct behavior; they will fail until fixed [ci skip]