Rewrite the 1D graphics capability to work like the new 2D one.

The 1D graphics capability is just an altered version of the 2D one, so
refactor it along the same lines as the 2D refactoring, including a new
1D-as-2D adapter supporting the new interface.

Lost all of the doc comments in this rewrite; will add them back in a
later commit.