Added support for multiple values at once

This required rearranging arguments so that the test statistic comes
last (so that more than one can be given).  Output is now one p-value
per line, in the same order as those given on the command line
arguments.

This also silences some unsigned/signed and long/int comparison
warnings.
Don't bother trimming the data values

fracdist-data.c is only used to build the .so, which contains machine
representation of all this data anyway: reducing the size of the .c is
thus pointless.  On top of that, it really saves very little (around
26KB in a 2.76MB file).
Changed `constant' from unsigned char to bool

The code already needs C99, so might as well use C99's bool.
Implemented critical value code + various changes

- the critical value code and fdcrit executable are now implemented,
  and agree with fracdist.f results.
- exposed the quantile calculation code (renaming it to
  fracdist_get_quantiles)
- fracdist_get_quantiles now caches its result; the cache will be used
  when next call uses the same q, b, constant, and interp values, and
  reset when called with new values.
- Fixed code that wasn't freeing the return quantiles array.
- abstracted closest-value-finding and bracket-finding code (since they
  are used for both pvalue and critical value code).
- cache the results of the chisq inverse (this will mostly help if
  critical values are sought several times).
- added new fracdist_error_unknown error code for reporting unknown
  errors (currently used if fracdist_get_quantiles somehow returns a
  null pointer without setting error_code_).  This error shouldn't ever
  happen, but is useful as a safety check against potential bugs.