Optimize isApp() code eval
Parse custom error properties

This is a breaking change:
- The callback is now called with a stack object instead of a stack array
- The stack object contains two properties: properties and frames
- The frames property is the array of callsite objects which was previously parsed to the callback
- The properties property contains all the custom properties found on the error
0.2.0