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

Alternative solution for #207 forking

To achieve correct forking, all SQL-queries are moved out to the parent process, so child process only does the workload and marshals result 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 have a chance to close the connection.

Adds specs for forked workers success/failure, mixed workers, connection reuse exception.