Remove global struct recovery_state * pointer from recovery subsystem

Box still have a global pointer to its recovery state.
This pointer must only be used from TX thread from main process.

This patch is pre-requisite for thread-based JOIN/SUBSCRIBE handlers.

Other changes:

 * Add box_atfork() and recovery_atfork() callbacks
 * Change signature of recovery_state->row_handler
 * Execute JOIN request via box
 * Remove r->join_handler callback from recovery subsystem
Merge remote-tracking branch 'origin/master' into gh-578-join-thread-3