Avoid calling object.property in makeHidden

        This would wrongly convert a 'getter' property into a static
        value. As a result, it could also lead to unintentional
        recursion.
Replace _lookupGetter_ and _defineGetter with standards-based equivalents.

        Ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__
Avoid using JSON.stringify() to check to see if an object has an properties

        JSON.stringify() would call every getter in the config object and potentially trigger recursion bugs.

       The new code should be faster because it short-circuits as soon as /any property
       has been found. However, it hasn't been benchmarked.
Merge pull request #163 from markstos/more-getter-checks

Some updates to remove assumptions that the data is full of 'data' properties.