3609: Refactoring arv-ws into a reusable command module.  Working on adding
ability to monitor pipeline/job log at command line.
3609: --job and --pipeline logging implemented, needs testing
3609: Logging should work for jobs but running into a bug in eventbus
Websocket server side fix, perform database notify in after_save callback on
the log object instead of in log_change on ArvadosBase because crunch-dispatch
was creating Log objects directly and bypassing the notification in log_change.
3609: Add some options to control polling fallback, improve error logging a bit.
Fix filters, subscribing to components of pipelines.
3609: Fix schema so 'order' parameter of 'list' is an array instead of a string.
3609: Add test case for PollClient.  arvados.event.subscribe() starts a new
polling thread by default so as to provide the same behavior as websockets.
Add documentation strings to ws.py command line parameters.
3609: Roll back schema change, not appropriate for this branch
3609: PollClient waits on event object instead of time.sleep, fix filters.  Also fix --poll-interval and --no-poll
3609: Prefetch pipeline components to find out which jobs to subscribe to.
Merge branch 'master' into 3609-arv-ws
3609: Add additional api_ fields to api client object so that subscribe() can
create a new api client.  Change test to use event variable instead of
sleeping.  Fix "Web sockets" -> "Websockets".  Make some command line options
mutually exclusive.
3609: import signal; add_mutually_exclusive_group doesn't take any arguments.
3609: Back out setting api_version, api_host, and api_insecure on api client
and instead document that caller to arvados.events.subscribe() should pass in a
freshly created api client.  Add event variable to indicate when subscription
is a success instead of sleeping.  Removed unused "import time".  Fixed "web
sockets" -> "websockets".
3609: Testing fixups.
3609: Fix PollClient for case when there are no filters (get everything).
Merge branch '3609-arv-ws' refs #3609