Wrapping property access in _.functions with try-catch

Property access in _.functions isn't guaranteed to be safe (see example below/in test), so wrapping the code in try/catch can avoid an error.

i.e.
`var obj = {};
      Object.defineProperty(obj,'bad_property', {
        get: function () { throw new Error(); },
        enumerable: true
      });
_.functions(obj);
`