Changed Promise API to conform to execute-method pattern
added unscheduled status management
Better Condition variable

Standard library ConditionVariable#wait does not return any significant value, making very hard dealing with spurious wake ups.
Concurrent::Condition (inspired by Java's one) acts like standard ConditionVariable, but wait method returns a Concurrent::Condition::Result so we can know if it happened due to a wake up or a timeout.

Event#wait has been improved to manage spurious wake ups
Moved AtomicCounter into its own file and expanded API.

* Constructor defaults value to zero when no initial value given
* Constructor raises an exception if the default value is not an integer
* Added #increment method
* Added #value method
* #increment aliased as #up
* #decrement aliased ad #down
* Full specs written for all methods
improved MVar to deal with spurious wake ups and fixed a potential issue in `empty?` and `full?` methods
Changed Promise API to conform to execute-method pattern
added unscheduled status management
added spec for long chains
Add tvars branch to Travis.
added factory methods
added Rescuer class
changed `then` signature to accept rescuers
added on_success method
removed unnecessary Rescuer class
implemented chain management on fulfill
first working implementation (not thread safe yet)
ThreadLocalVar initial implementation.
ThreadLocalVar documentation.
first really working implementation (not thread safe yet)
thread safe implementation