String Formatting

Added a decent amount of support for passing in various formatting options for the widget's output.  This is using string.format() to handle various combinations of formats in a more streamlined manner, but it does mean that the minimum Python version this patch support is 2.6.