Altered the way historical requests are handled.

When requesting large durations of historical data, Jython would
throw a 'maximum recursion depth exceeded' RunTimError. We believe
the cause is too many callbacks are open at the same time as a result
of historical data requests bumping up against one another due to the
fact that a socket must be opened and closed for each line.

In this version, we prevent a new historical data request from being
sent until the previous historical data request has completed running.

We have also more efficiently prevented pacing violations.