Added flexibilty when saving integer types to netCDF3

This PR modifies the behaviour of Iris when saving to netCDF3. netCDF3 does not support 64 bit ints or unsigned ints. When saving to NETCDF3_CLASSIC  or NETCDF_64BIT the logic in this PR checks whether someone is attempting to save such datatypes and safely casts the points/bounds/data arrays when necessary.

I could refactor the code as it appears there is a lot of duplication, but I couldn't find a clean way to do this that I was happy with that retained the useful exception messages.