(Bug 2366) Move custom text data from S2 layers to userprops

This keeps custom text the same across layouts, instead of saving it per
layout.

-Creates new userprops to store the data instead of s2 props
-Creates a widget to handle recieving and posting of userprops
-Inserts widget into the Module section of Text options, maintaining
 striping and classes
-Migrates s2 props to userprops, if the user is not using userprops