Concatenate with scalar coordinate.

This PR fixes a long standing bug within cube concatenate, that prevents a cube with a single valued dimension coordinate concatenating along that axis to another compatible cube. 

For example, consider the time-series cube (t:10, y:10, x:10). We should be able to concatenate the cube (t:1, y:10, x:10) given compatible metadata and coordinates to the time-series over the first dimension `time`. Previously this was not possible. This PR resolves the issue that prevented such cubes concatenating.
I think if you just compared dictionaries with the appropriate parts disabled, it would avoid the subsidiary routine and be more obvious.  I'm thinking of something like ...
```
if isinstance(other, _CoordMetaData):
    self_props, other_props = self._asdict(), other._asdict()
    self_props['kwargs'] = other_props['kwargs'] = None
    if self_props == other_props:
        # Monotonic "order" only applies to DimCoord's.
        # The monotonic "order" must be _INCREASING or _DECREASING if
        # the DimCoord is NOT "scalar". Otherwise, if the DimCoord is
        # "scalar" then the "order" must be _CONSTANT.
        self_kwargs = dict(self.kwargs)
        other_kwargs = dict(other.kwargs)
        if self_kwargs['scalar'] or other_kwargs['scalar']:
            self_kwargs['scalar'] = other_kwargs['scalar'] = None
            # We don't care about the monotonic "order" given that at
            # least one coordinate is a scalar coordinate.
            self_kwargs['order'] = other_kwargs['order'] = None
        result = self_kwargs == other_kwargs
```
Note: in this I have also changed "|" to "or" in the 'scalar' testing, and also moved the resetting of the 'scalar' kwargs inside of that test (i.e. when either is True) cos' I think thats clearer.