added TimeoutableFuture with a 'within' method
- added tests for already satisfied future and timeout of zero
- some more refactoring
- switch future perfect internals to use scala futures/promise
- implicit conversion from scala futures to twitter util future