Merge pull request #728 from starwed/defineProperty

Switch to defineProperty; set enumerable flags to be consistent with private/public properties
Merge pull request #727 from starwed/dom-removal

Reorganize init/removal of DOM component
Improve "Color" init/remove routine

- Allows the "Color" component to be properly removed from entities.
- Properly invalidates the entity when "Color" is added.
- Adds a test for removal of color