Remove the need for the WeakMap shim in knockout-es5.

The WeakMap shim actually stored values (in this case the observable storage) on the keys (view models) directly, using a hidden randomly-generated property, and overwrote the global Object.getOwnPropertyNames function to hide that property.  For our purposes, the observable storage is not really that secret, so it simplifies everything to just create a non-enumerable property named __knockoutObservables on the view model.  Less is more.
Merge pull request #1499 from AnalyticalGraphicsInc/refactorKnockoutES5

Remove the need for the WeakMap shim in knockout-es5.