MERGE W/ 3d8a2227
employ a caching scheme for a currency's historic data

With this change the history() method of Currency objects does not
necessarily query the Oanda server on every invocation. Instead, we
store the last data we retrieved and decide whether it is still current
based on the granularity of the request, the current time, as well as
the last time data was actually retrieved from the server.
The overall goal towards which this change is a first step is to reduce
the overall amount of connections to the Oanda servers as much as
possible since there exists a limit of 4 (peak 5) connections per
second. If this limit is exceeded clients might be subject to throttling
or other means degrading the quality of service.
move API object creation into fxBot.py

In this change the creation of the API object representing the
interaction point with Oanda's server is moved from the Program class
into the fxBot.py file containing the main() function.
This refactoring marks a first step towards a possible virtualization of
the API interface so that we can better test our code by supplying a
mock API object.
MERGE W/ db1d71b3
MERGE W/ 62ef299f
MERGE W/ 6887c9744716dc40bd31433911a1cc8a389a9abc
MERGE W/ 2fc697d0
MERGE W/ 43f922ca
MERGE W/ 873f6cfb