Refactor of bin/ursula to use getops + back compat

This is a pretty big rewrite, but is a precursor to adding upcoming tag and version support.
This has been heavily tested locally with expected operations and output, but has not been tested to actually deploy a new cluster yet.
What is the intention of the `cd` here, if we are intentionally changing directory it shouldn't be a side affect of an assignment, but an explicit statement.