Fixes forking for workers. Should not corrupt pg connection anymore.

Alternative solution for #207 forking

To achieve that, all logging actions are moved out to the parent process, so child process only does the workload and marshals it back to parent process. Forked workers should NOT re-use parent connection (sanity check added).

The code makes use of exit!(0) command, that triggers fast exit from a forked process, so postgres does not close the forked connection.

Adds specs for forked workers success/failure, mixed workers, connection reuse exception.