Putting OriginalString in its own file, starting some testing.
removing some of the unneeded methods on OriginalString.  Still need a better name for that class.
Moving BoxedElementString out to own file.  Override toString on the class, and have the companion's apply just new up the class.  In NameDecoration we now call toString
Wrapping a test around the boxing of a substring.  Will probably rename the class in a moment.
renamed BoxedElementString to BoxedSubstring.  Cleaned up tests a little
Cleaning up the string manipulations in BoxedSubstring.
generalizing the padding functions
moving the elements into a package object
starting the removal of passing in the function to StringParts.  Upon reflection, it doesn't really seem to belong there.
revising my plan of attack.  Thinking I will have Substring have a transform method.
added a transform method
added new test for default transform on substring
undoing the transform method.  I think going down that road right now will drive me towards transform on BoxedString.  It looks like we'd starting getting into mapping, flat mapping, monads, etc.  I don't want to do that quite yet, so I am going to back off and focus on naming some stuff.
StringParts => TripartiteString
renaming the val
OriginalString => EnhancedString.  I think this exposes the possibility of using implicits.