Allow earth_tilt() to support float Julian dates

This commit is kind of a big deal: we are returning to full support for
real, honest scalar Julian dates that are a simple float, instead of
really storing them as 1-element arrays and then trying to hide that
fact.  But as this adjustment to JulianDate seems to break nearly
everything, we are doing it over here on a branch.
Test that tdb_minus_tt() accepts scalar or array
Auto-convert JulianDate args that are sequences

While leaving scalars alone, we do want to turn lists and tuples into
NumPy arrays.
Confirm that sidereal_time() takes float or array

And to successfully test this, two advances had to be made in the test
suite.  First, a fixture had to be created that returns a series of
JulianDate objects, some of which are scalars and one of which is an
array.  Second, the vcall() function had to be upgraded so that not just
its first argument, but subsequent arguments, can be arrays of values
that should be different with every call.
Test compute_precession() with scalar and array
Test compute_nutation() can take scalar or array
Test geocentric position call with scalar, array

Because this routine returns a 3-dimensional array, our vcall() routine
is hereby upgraded to handle the general case of n-dimensional result
sets; previously, it only worked with 2 dimensions.
Test that Earth rotation takes both scalar, array
Astrometric positions from scalar and vector dates
Support both scalar and array apparent positions
Topocentric positions can now be scalar or array
Horizontal coordinates can now be scalar or array
Allow star routine to take date float or array
Merge branch 'feature/scalar-support'