protect proxy objects against concurrent accesses

All proxy objects can potentially be involved in invocations from
multiple threads. Currently, only the worker thread and the watchdog
thread may potentially cause such interfering access and only for the
currentPrices() invocation. Future changes might add arbitrary many
concurrent worker threads causing a lot more interference.
This change adds proper locking to the relevant proxy classes:
CacheProxy, TimeProxy, and LimitProxy.
Note that using a simple lock is not optimal. For the CacheProxy and
TimeProxy classes a reader-writer lock might prove beneficial but Python
does not provide those currently. Also, the code is not really
performance critical so we should be fine for now.
fix to adjust to OANDA's strange tick propagation

For quite some time now the rateStreamer class was stable constantly
delivering new prices without a problem. Suddenly, things fail with a
'tick' key error. Investigation has shown that new prices are coming
through the rate stream arrive now as values to a 'tick' key where there
was no key-value pair beforehand (but just the value).
This change adjusts to this recent development. We keep the 'else' case
in case OANDA decides to switch back. Hopefully, there is no decision to
send something else instead...