Decoupled layouting and type setting.
- Typesetter.as is now only responsible for converting a String into a vector of TextSpan objects. (And parsing tags in the text)
- Printhead.as moved to layout package
- Added ILayout.as interface.
- Moved layouting functionality to LeftToRightLayout.as. Other layouts supporting right to left or top to bottom read directions can implement the ILayout.as interface and be passed to HardwareText.as
- HardwareText now accepts Typesetter.as and ILayout.as parameters.