Add Sync.reactor.perform to execute EventMachine bound code blocks.

EventMachine reactor in a new thread, blocking until it's fully up and running.
This allows lazy asynchronous execution without having an event machine reactor
running in another thread in advance and will catch cases where the reactor
thread dies or has gone away from a process fork. Fix #34.