[EventLoop] Add a timer interface and class.

They will be used to provide a much nicer abstraction for timers shared
among the various event loop implementations.
[EventLoop] Reimplement timers for StreamSelectLoop.
[EventLoop] Reimplement timers for LibEventLoop.
[EventLoop] Reimplement timers for LibEvLoop.
[EventLoop] Add typehint in loop interface for timer cancelling.
[EventLoop] Update tests.
[EventLoop] Add a method to check the status of a timer.
Update examples after BC breaks in EventLoop timers.
[Dns] Update after BC breaks in EventLoop timers.
[EventLoop] Apply changes after code review.

Also removed a couple of unneeded use directives.
[EventLoop] Remove check on return value from streams callbacks.

This was an early addition but now that the event loop abstraction is
mature enough it's definitely better to be explicit when removing a
stream instead of relying on obscure values returned from callbacks.
Merge remote-tracking branch 'nrk/loop-remove-return' into 0.3

* nrk/loop-remove-return:
  [EventLoop] Remove check on return value from streams callbacks.
Update CHANGELOG for stream callback return value
Merge remote-tracking branch 'nrk/loop-timers-abstraction' into 0.3

* nrk/loop-timers-abstraction:
  [EventLoop] Apply changes after code review.
  [Dns] Update after BC breaks in EventLoop timers.
  Update examples after BC breaks in EventLoop timers.
  [EventLoop] Add a method to check the status of a timer.
  [EventLoop] Update tests.
  [EventLoop] Add typehint in loop interface for timer cancelling.
  [EventLoop] Reimplement timers for LibEvLoop.
  [EventLoop] Reimplement timers for LibEventLoop.
  [EventLoop] Reimplement timers for StreamSelectLoop.
  [EventLoop] Add a timer interface and class.
Add new timers API to CHANGELOG
Document 0.3 API breaks in an UPGRADE file
Update references to 0.3, update lock file
Remove guzzle/http dependency from composer.json
Introduce ResponseCodes class
Make react/http work without guzzle