Avoid the exception below by handling bad charsets in FetchHTTP. Restore annotation "unsatisfiableCharsetInHeader:...". Includes unit tests for good and bad charsets.

SEVERE thread-5973 org.archive.crawler.framework.ToeThread.recoverableProblem() Problem java.nio.charset.UnsupportedCharsetException: binary occured when trying to process 'http://example.com/' at step ABOUT_TO_BEGIN_PROCESSOR in
java.nio.charset.UnsupportedCharsetException: binary
        at java.nio.charset.Charset.forName(Charset.java:543)
        at org.apache.http.entity.ContentType.<init>(ContentType.java:111)
        at org.apache.http.entity.ContentType.create(ContentType.java:210)
        at org.apache.http.entity.ContentType.get(ContentType.java:258)
        at org.apache.http.entity.ContentType.getOrDefault(ContentType.java:277)
        at org.archive.modules.fetcher.FetchHTTP.setCharacterEncoding(FetchHTTP.java:580)
        at org.archive.modules.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:693)
        at org.archive.modules.Processor.innerProcessResult(Processor.java:175)
        at org.archive.modules.Processor.process(Processor.java:142)
        at org.archive.modules.ProcessorChain.process(ProcessorChain.java:131)
        at org.archive.crawler.framework.ToeThread.run(ToeThread.java:148)
also handle case where Charset.forName() throws IllegalCharsetNameException, as opposed to UnsupportedCharsetException
Merge pull request #36 from nlevitt/bad-charset

Avoid the exception below by handling bad charsets in FetchHTTP. Restore...
pull in json dependency from ia-web-commons
AMQPUrlReceiver - receive urls and request headers via amqp in the format produced by https://github.com/internetarchive/umbra and add to frontier
spaces not tabs for indentation
license header
annotate CrawlURI with "receivedViaAMQP"
fix HER-2063 - omit port in Host request header when it is default for the scheme
Merge pull request #37 from nlevitt/her-2063

fix HER-2063 - omit port in Host request header when it is default for t...
Merge branch 'master' into umbra
AMQPUrlReceiver - ack amqp messages, get rid of misguided thread starting infinite consumers
FetchHTTPRequest - include CrawlURI.getData().get("customHttpRequestHeaders"), if any, in http request
AMQPPublishProcessor - annotate urls sent to AMQP; set special fetch status; add default amqpUri; replace queueName setting with exchange and routingKey, which seem to be what are needed; avoid sending urls that were received from AMQP, and robots.txt urls; set content-type of amqp message to application/json, which umbra seems to need
syncronize start() and stop()
Merge pull request #38 from nlevitt/umbra

Umbra - AMQPUrlReceiver.java receive urls via amqp and add to frontier, related changes
For https://webarchive.jira.com/browse/HER-2064