Convert vector vertical coords

This PR implements the `pp_rules._convert_vertical_coords` function which caters for array data as well as scalar values.

Assumes that the following arguments will remain as scalar:
* lbcode
* lbvc
* stash

Assumes that the following arguments may be either scalar or array:
* blev
* lblev
* bhlev
* bhrlev
* brsvd1
* brsvd2
* brlev

BDAC dataset contains the following vertical coordinates, of which **level_height** and **sigma** are bounded:
* **pressure** -- using *blev* for points
* **model_level_number** -- using *lblev* for points
* **level_height** -- using *blev* for points, and *brlev* and *brsvd1* for bounds
* **sigma** -- using *bhlev* for points, and *bhrlev* and *brsvd2* for bounds

Replacement for #1392
I've been reassured that you won't get a mix of -1s and other values in a fieldsfile, but do we want to check for it and catch it, just in case? My concern is that you get [0,1,2,3,4,-1] as input and you end up with those values in the height coord. Happy to leave this, provided we make sure this path is limited to fieldsfiles, rather than ff and pp.