alter process to be aware of failures (WIP)

ref #9
add Process#restart
set busy to false after work completes
move the setting of state into "reset" method
remove Process#failed_process
when a process fails, it is also marked as dead
cleanup read_loop
log when a process fails
simplify read_loop
rename set_busy_and_failed to synchronize!
simplify Process#busy?
synchronize before returning @failed
add new tests around Process
update ChangeLog.txt
readme update
synchronize in dead?, alive?
assert process is dead when it fails
remove synchronize! from alive, since dead? calls it
add Process#backtrace
update changelog.txt