generalize metadata

In this process i removed some unused and potentially dangerous cli apps for feature stores.
I would prefer not to do this and just pass it as an argument. There is possibly a case for putting it in a reader, but at the moment we have too many ways to pass arguments (constructor, implicits, readers, partially applied args, just args). I am of the opinion that we should pass things as args most of the time, and if there really is something pervasive (which repository may very well be, then reader it up). But I would really like to start reducing the ways we do it.