bitcoincharts: update to use new API url

 * minor readability improvements
 * more careful checking of http response
 * sanity check the http response prior to setting it in cache