Jm/expose up

This is the work to refactor most of the rake madness into an api class, move the ec-metal repo to being a gem and generally make things work.
I could have the, say, up function call all the setup functions, but they only need to happen once per set of commands and it'd make it harder to test I'd think.  I'd be open to having the public api include the setup functions and have private ones that don't if you think that's a better api.  I feel pretty comfortable with this though.