add support for comparing Price objects

This change introduces compare functionality for Prices: support for
equality comparison as well as less than checks are added. To derive the
remaining comparison operators (not equal, less or equal, greater, and
greater or equal), the total_ordering decorator as provided by the
functools module is used. Price objects can now be related to each
other and form a total ordering.
This change forms a first step towards better statistics calculation
based on prices that requires comparing said objects.
add findIntersections() function

This change adds a new statistics related function: findIntersections()
can be used to calculate the intersection points between two data sets
with equal time stamps. It is implemented to return a generator that
calculates all intersection points beginning with the most recent data
points. There is some maths involved to interpolate the intersection
points. A Maxima script was used to derive the final formula.
A unit test is added that verifies the results of the calculation. Also,
for better overview each statistics related test is put into its own
module, which means testStatistics.py (which contains functionality to
test the EMA calculation) is renamed to testStatisticsEma.py.
improve EMA calculation functionality

Putting closer attention on the EMA calculation functionality revealed
that it is not quite what we require: although we calculate the EMA for
a list, only the actual last value calculated is the truly expected one,
all other values are just intermediate results that could be thrown
away, strictly speaking.
This change honors this observation by introducing two functions:
calculateEmaValue() can be used to calculate a single EMA value based on
a given number of values. The second function, calculateEma() uses this
function to calculate the correct EMA values for a list of values.
add Makefile

Invoking tests should be fast and easy. This change adds a Makefile to
the root directory that takes care of the correct invocation of all
required tests when invoked using 'make'.
In general there might be stale tests lying around and so the decision
was made to explicitly list tests to be executed by default over having
the unit test module discover them dynamically. However, the 'testAll'
target takes care of this and will at the very least execute the full
program test with a longer run time.
MERGE W/ 9a626ca5
MERGE W/ c96a2086
MERGE W/ 717522e5
MERGE W/ dcfd5068