Safer object

I'd like to be able to use ol.Object with user provided keys (e.g. for a feature with arbitrary attributes).  The current implementation risks clobbering other object properties and methods, and because of compiler renaming, we don't know ahead of time what keys will be restricted.

It will also be useful to get a list of keys for objects of this type.