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 :(
I think there are a lot of implicit assumptions, requirements that don't come across in the documentation or types, so we need more documentation. Also rather than pulling out the source implicitly from the hdfs path shouldn't we just require that the archive path includes the source or pass it in explicitly?

What is the convention around `hdfsLandingDir`? It must include a source directory. What is the `destSubDir` component after that? Is it just an arbitrary path or does it represent a specific directory?