Vector rules fns

Providing the first of the "vectorised rules" functions.  Nothing uses the vector features yet.

Some tasks remain :

* Need to ensure these changes don't impact load speeds adversely.
* We still need to write  the "other" vector coordinate functions -- at least the vector height code before we can really take advantage of this.
At first glance, I don't see any special extra complication with that, so hopefully it is a straightforward development from what we have here.

The main test for this "test__convert_vector_time_coords.py" is pretty messy.
The mechanics are largely tested by the separate tests for the support routines, but the main routine needs "something":  I can't quite get my head around testing "only" the relevant parts of it's behaviour, separate from the "generic vectorised function", so some of the testing effectively duplicates the lower-level functions testing, even though they have their own tests.

See comment where you call this for comment of my suggestion.
```Python
def _convert_vector_time_coords(lbcode, lbtim, epoch_hours_unit, t1, t1_dims=None, t2, t2_dims=None):
    t2_dims = () if t2_dims is None else t2_dims
    t1_dims = () if t1_dims is None else t1_dims
```