Adds optional TCP_KEEPALIVE to WebSocketServer

TCP_KEEPALIVE is now enabled by default. Settings for
KEEPCNT, KEEPINTVL and KEEPIDLE can be supplied when
creating WebSocketServer and KEEPALIVE can also be
disabled if required.

Also adds new unit test for testing.

Co-authored-by: natsume.takashi@lab.ntt.co.jp
Handle SIGCHLD properly for multiprocessing

This commit should fix #101 by enabling a special SIGCHLD
handler for when multiprocessing is in use.  The handler
simply calls `multiprocessing.active_children()` (which in
turn calls `_cleanup()`) upon receiving a SIGCHLD.  Now,
the `fallback_SIGCHLD` is only called when `multiprocessing`
is not in use.  See also #95.
Merge pull request #102 from DirectXMan12/master

Handle SIGCHLD properly for multiprocessing (fixes #101)
Fix syntax errors in other/websockify.rb
Merge pull request #103 from dellsystem/master

Fix syntax errors in other/websockify.rb
Fix crash when an import is missing

self.msg is not available when checking the imports.

I had the problem on a host where numpy is missing (python 2.7.3).
Merge pull request #104 from stevschmid/patch-1

Fix crash when module is missing
Fix search path construction in tests.

This way the tests can be run directly from within the tests directory
and they might also have a chance of running on Windows (where the
path separator is different).
Merge pull request #93 from dosaboy/topic/set-keepalive-options

Adds optional TCP_KEEPALIVE to WebSocketServer