Added support for context eval timeouts

This implements #279 without it there is no way to have built in DoS protection.

Usage: 

```
ctx = V8::Context.new(:timeout => 10)
lambda {ctx.eval("while(true){}")}.should(raise_error)
```

Timeout is in milliseconds