Determine beforehand which properties to exclude

`addChainableMethod` checks every time if a method belongs to `Function.prototype`.
In this patch, the list of prohibited methods is generated only once.

The following performance test takes 19.4s with the patch instead of 22.6s without:
```JavaScript
for (var i = 0; i < 100000; i++)
  'x'.should.be.a('string');
```
That's still a lot, but this patch nonetheless helps the performance issue #127.