Bitcoincharts API fix

The bitcoincharts API has recently been changed in several ways. The start parameter has been deprecated and the API now always returns 20000 last trades which happened earlier than the timestamp passed as the end parameter.  Furthermore, the API now returns trades in reverse, from newest to oldest. One of the reasons the API has been changed is because histories have grown large for some of the exchanges and it caused great traffic for bitcoincharts.  
 
This commit aims to work around the changes in the API while still being mindful of bitcoincharts' bandwidth. It reimplements the logic in bitcoincharts_history() to download the data in chunks using only the end parameter. Also, it adds two new options, --history-length and --bootstrap. The former parameter limits the length of the history to be downloaded from bitcoincharts (in days, defaults to 10 days). The parameter has no effect if a *.scid file for the symbol in question already exists; in this case, it downloads the complete missing history in order not to create gaps.  Complementarily, the --bootstrap parameter allows a user to pass in the path of a *.csv file which then gets converted to a *.scid file. The purpose of this parameter is to enable the use of the new experimental [historical dumps](http://api.bitcoincharts.com/v1/csv/) (updated daily) offered by bitcoincharts. Since this feature is experimental, downloading from this location was not made automatic in this pull request, but it can be easily done in the future, if needed.

I have tested this and it seems to work well but I would appreciate some more testing. This deprecates pull requests #8, #6 and #4 and should close issues #7 and #9.

EDIT: 
I forgot to mention that this might miss a few trades as it is now if the following conditions are met:
  * there is more than one trade with the same timestamp
  * a group of such trades fall on the boundary of two chunks of 20000 trades

In this case, we would miss the trades that fell into the older chunk. A proper solution to this would be thoroughly inelegant with the current API so I've contacted tcacm to see if he'd be willing to make things easier for us on his side. I've chosen to ignore the issue until I've received a reply since it isn't a big problem anyway.