Make the StartChan process to start children more robust

* Add the restarter ProcessId to the StartChan constructor
* The supervisor process now monitorso the restarter helper process before
  expecting a message from it
* The supervisor process puts a timeout on receiving a message from the
  restarter process (avoid hanging)
* Now when creating/restaring children with ChildStart equal to StartChan
  have support for failing