Optimize deprecation capture

References atom/atom#3765

This PR makes deprecation capture about 10-20 times faster in my own tests, bringing the time from ~6ms to ~.3ms via the following techniques:

* Delay/minimize reading of CallSite properties, which seems to be slow
* Reduce depth of captured stack trace to 3, the smallest useful size
* Replace O(n) searches with O(1) storage structures

Old:
![screenshot 2014-12-29 18 56 23](https://cloud.githubusercontent.com/assets/1789/5574702/cfcbd000-8f8c-11e4-96a5-edd65dd0b777.png)

New:
![screenshot 2014-12-29 18 50 39](https://cloud.githubusercontent.com/assets/1789/5574712/ee02ddf2-8f8c-11e4-8f48-6a6af344e04c.png)

Gotta make sure to put that back before merging.