Refactor the `properties`, `methods` and `events` accessors, part 1.

In the accessor functions, accept `this` as either the
`node.{properties,methods,events}` collection object or the `node`.

References #3078.
Refactor the `properties`, `methods` and `events` accessors, part 2.

Extract the now-identical accessor creation code into functions (one
each for properties, methods and events).

References #3078.
Refactor the `properties`, `methods` and `events` accessors, part 3.

Formatting and comments.

References #3078.
Refactor the `properties`, `methods` and `events` accessors, part 4.

Use the accessor creation functions for the behavior proxy.

References #3078.
Refactor the `properties`, `methods` and `events` accessors, part 5.

Change the `future` collection objects to refer back to the future proxy
using `node` instead of `future` to be compatible with the accessor
creation functions.

References #3078.
Refactor the `properties`, `methods` and `events` accessors, part 6.

Extend the accessor creation functions to support the `future` proxy and
use them on the `future` collection objects.

References #3078.
Merge pull request #141 from virtual-world-framework/branch/collection-refactor

Refactor `model/javascript` accessors