Changes collections so that it does not modify any built-in constructors or
prototypes.

- Instead of modifying Object, Array, Function, and RegExp, all changes
  are exposed on ShimObject, ShimArray, ShimFunction, and ShimRegExp
- ShimObject, etc. can be obtained via `require("collections/shim-object")`
- ShimArray constructor uses __proto__ assignment to transform a normal
  Array into a ShimArray.
- Adds method `ShimArray.shim` to transform any existing array into a
  ShimArray.
- Many functions modified to handle either ShimArray or Array, even though
  Array does not have the collections-added prototype methods.
Adds personal notes, checklist, & todo list