Small fixes to diffSeries and movingAverage

This branch contains the work to flatten the metrics or constants passed to diffSeries so that they can be handled easily. Which fixes a bug whereby 'functions' passed to diffSeries were failing to evaluate. Includes a test for that use case.

It also contains a small fix to movingAverage, ensuring it returns the same time boundaries that the graphite API does. e.g. For a ten minute boundary 600 - 1200 the start and end time values would be 660 - 1260. 

This work doesn't address the issue off force  're-populating' metrics before applying moving average. Neither does it fix ensuring that movingAverage behaves correctly when used in conjunction with timeShifted metrics.