client: make Redis::Client#ensure_connected handle fork reconnects

If reconnect is enabled and ensure_connected is called in the forked child of
the process that established the connection, a reconnect attempt should be made;
handle this case like any other ConnectionError.
Merge pull request #414 from yaauie/fork-child-auto-reconnect

client: make Redis::Client#ensure_connected handle fork reconnects
Increment tries before trying to connect

Fixes #415.
Include original backtrace in new TimeoutError

Fixes #430.
Only override `nil` options, not `false` ones
Add a fork safety test
Add an `enable_inherited_socket` option

When this option is enabled the pid check used to detect
fd leaking will be disabled. That way, you can reuse the same
connection across forks.

`enable_inherited_socket` is disabled by default.