Make ol.Observable and ol.Object @structs

This builds on #1377.

This makes `ol.Observable` a `@struct`. Since `ol.Observable` is a base class for many ol3 classes, this effectively applies `@struct` checking to a large number of classes, including `ol.Object`.

Currently, `ol.Object` contains a mix of properties. Some (`_ol_accessors` and `_ol_bindings`) are given explicit names that will not be renamed by the compiler. Others (`values_` and `beforeChangeListeners_`) will be renamed by the compiler. This PR also changes `ol.Object` to only use properties that will be renamed by the compiler.