FloatTools: add FloatPositiveIntegerRange and FloatSignedIntegerRange
Use doubles to represent distances, and represent everything in internal units (steps, clock ticks).