Fix SI formatter function to handle various formatting layouts

This replaces the MechJeb function.  I also added more test cases to the FormatterTests unit test.