Adds support for timeout

If Expectation.timeout is set, then all dynamic expectations - i.e. expectations that are defined via a callback - are checked repeatedly until the timeout period is over. 
Bumps version number
Turn Expectation.timeout into a TLS value.

(Because that is the right thing.)
Refactored expectation module to not use Exceptions internally.

This became necessary as test/unit or mocha or 
something changes exception handling no longer 
allowing our exceptions to be caught properly. 

It also allows for a cleaner infrastructure and a much cleaner assertions.rb implementation.
Bumps version number
Updates documentation