Topic/centralize metadata

This is the first step in making metadata work on both S3 and hdfs
I don't think we should do this, we should have a function on `object Encoding` that is: `def render(enc: Encoding): String = enc match { case BooleanEncoding => "bool" ; ....} `. Because these are going to rapidly get more complicated with structs etc... and I don't think this simple model will hold up for very long.