One of the things about the old implementation that I think was desirable was that bounds enforcement was in the base `Angle` class, even though it wasn't used by default.  The `Longitude` class here adds bounds enforcement for a specific bounds, but one could conceive of other `Angle` subclasses that need to enforce another set of bounds, and they shouldn't have to reimplement everything here just override `_wrap_internal`.  I wonder if we shouldn't have a `BoundedAngle` class here in the middle that does bounds enforcement in general, and the `Longitude` class would merely specialize it for the specific bounds.  (Or to avoid a larger inheritance heirarchy, just move this into `Angle` itself).