Rewrote the class to return output strings rather than echo them.

Also:
* 3x if( !==array() ) around foreach-es
* Improved empty array indication
* Made sure all translation string have the correct text domain
* Deprecated the old functions, but kept them in the file to allow for version mismatching across plugins