Introduce LinePanel et. al.

Again, we're working on modularizing panel initialization in order to
solve #484. Here we introduce the LinePanel class which necessitated the
creation of four other classes:

    * ColorLabel (to be reused in future commits)
    * DashArrayField
    * LineOpacitySpinner
    * LineWidthSpinner

As for #497, I've added a local preview, but the area settings don't
update it yet. I'll be fixing this in a future commit.