Fixed a bug in bounds inference.

We were lifting out Call exprs that were loads from Funcs. You can't move
these around, as their value might change (especially if they're a reduction).

Added an error that previously did not flag as an error, and a test that uses
this to do an argmax.
Allowed one-character Func names.