First pass at supporting fonts: much refactoring; support input of all fonts; changed font structure to allow face, size, italic, bold, and underline; support global-scope fonts; only call the text element from one place.