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.
So this is to resolve paths like `~/envs/foo` or relative paths which were not handled by `dirname`? If so can we have a comment.