refactor push

Push now expects flags to specify arguments.

Arguments:
REQUIRED
-t -type == the metadata type (ApexClass, StaticResource, etc)
One of the following to flags are required, not both
-n -name == the name of the metadata (MyClass, MyResource)

-p -path == the path to the metadata