Merge pull request #25 from vonrosen/ari-3724

Allow flash requests to be detected. For https://webarchive.jira.com/browse/ARI-3724
wait for a browser to become available and start it up before reading the next url from amqp; ack the message only after completing the browsing process successfully, and requeue if it's not successful; some refactoring to make the timing work for this
get rid of --browser-wait and --routing-key in favor of sensible defaults, some other tweaks
close and reopen the amqp consumer connection only every 2.5 hours instead of every 15 minutes, because now that we have to wait for all browsers to close when we do the reconnection, it slows us down a lot
get rid of chrome_wait straggler
more elaborate dumping of state on SIGQUIT to replace faulthandler
when dumping state on SIGQUIT, build the whole string before printing to avoid stuff getting intermingled with other logging and stuff
seriously, don't try to wrap any lines, pprint
ugh, it was better with the default width, in spite of the ridiculous behavior.script
do not wait forever for zombie websocket threads (this change should also reveal how we get these sometimes)
kill -HUP to immediately close and reopen amqp consumer connection
set amqp prefetch count to the number of urls we can handle at a time, i.e. max_active_browsers (with prefetch=1 umbra was only browsing one url at a time, after quickly burning through urls already on the queue when started)
Merge pull request #26 from nlevitt/dev

stability!
Merge remote-tracking branch 'internetarchive/master'
reject (discard) bad messages
Merge pull request #29 from nlevitt/handle-bad-message

reject (discard) bad messages
utility queue-json to publish an arbitrary json blob to amqp
make drain-queue output actual json instead of python dict syntax
Merge pull request #31 from nlevitt/drain-republish

new utility queue-json, and another change to help with draining from and republishing to amqp
Merge remote-tracking branch 'internetarchive/master'