LatticeTiling: change internal coordinate system, etc.

- Only physical coordinates and generating integers are now used,
  normalised coordinates only used during XLALSetLatticeTypeAndMetric()
- Generating integers are only stored for tiled dimensions, physical
  coordinates are stored for all dimensions; transform matrices change
  dimensionality between full and tiled dimensions
- Physical offset is adjusted so that lattice points are never placed at
  zero in physical coordinates
- Use int for generating integers and lround() consistently
- Use UINT8 for lattice counts/indexes, with LAL format specifier
- XLALLatticeTotalDimensions() renamed to XLALLatticeDimensions()
- XLALLatticeTiledDimensions() now returns indices of tiled dimensions
- In LT_GetPhysBounds():
  * Returns physical bounds without transformation
- In LT_FindNearestPoint():
  * In An* lookup, set y[0] to zero, summing offset not actually needed
  * In An* lookup, use lround() instead of floor() for robustness
  * Modifies nearest_int_point[] to be within parameter-space bounds, so
    that nearest point is actually in tiling
- In XLALNextLatticePoint():
  * Use common code block to reset dimensions to lower bounds
  * No longer need to adjust starting point to an integer, instead
    lower/upper bounds are rounded up/down to nearest integer
- In XLALBuildLatticeIndexLookup():
  * Can now use integer lower/upper bounds directly, for guaranteed
    consistency with tiling
  In XLALNearestLatticePoints():
  * Now allow both points and indices outputs to be optional, but
    requires a workspace matrix
- In LatticeTilingTest:
  * Adjust lattice point counts to pass new tilings
  * No longer need to tolerate failed nearest point lookups
- Refs #1519