Handle situation where defineProperty does not exist

In some older browsers (Awesomium, etc) Object.defineProperty does not exist. This breaks the entire app in these browsers. I've added a simple compatibility check before using the function. It might break some things internally down the road to not have the property defined, but it's better than nothing.