Make Bounds robust, general tidying

The main change was parameterizing Bounds to avoid getting bad results from functions using ENU bounds.

Other changes had to do do with reducing redundancy, consistent syntax, and minor performance improvements.