Add --precision option for styling timing output

To allow this, modified the Timer class to utilize this.  It now stores
precision before and after the decimal point, and uses this info to
align the output.  To aid in this, it has been reorganized:
Some static functions were made private to allow access to private members.
Another private method was added to facilitate alignment by printing
padding characters.
Each print_* function uses setw and std::right for alignment