Add tributary logic to maestro

1) extended tributary logic by avoiding copying duplicate files
2) refactored tributary logic so it is an Hdfs action
3) fixed tributary logic so that archive directory structure mimics HDFS source structure
4) changed tributary tests so they each run in an isolated directory
5) date parsing does not allow overflowed days and months
6) many other misc changes to tributary logic

Sorry about the size of the pull request :(
All the files we send to HDFS should get placed in the "source" directory in HDFS, I believe. Is this terminology not understood by the people using tributary?

From my point of view, this restriction comes from the fact that the archive directory structure needs to mimic the HDFS source directory structure. The original flow method (which I have kept intact) does not directly give you enough information to reconstruct the source directory inside the archive directory. You have to look at the HDFS landing path and figure out what sub directory you are in compared to the HDFS source dir.