Calculator: give result for sin(pi)

Because of floating-point issues, sin(pi) does not come out to exactly
0. It looks like something we try to guard against a couple lines down.

So, if we don't have a defined precision (such that we can let sprintf
worry about the correct answer), we will set these very small values to
0.

This worked fine with things like '1 + sin(pi)' which made the whole thing
more confusing at the start. Thus, this commit also includes a passel of
new tests for things I considered as possible faults, plus one other thing
I wanted to demonstrate working [cos(2pi)].
Merge pull request #473 from mwmiller/more_calc_issues

Calculator: give result for sin(pi)