aggregate with string coords

potential replacement for #909

all the work from https://github.com/bblay/iris/commit/955c4cb9ceba3c30a867ce538d88eb63d63023ae

followed by
addition of 

''An assertIsNone(agg.coord("weird_name").bounds) at the end of https://github.com/bblay/iris/blob/955c4cb9ceba3c30a867ce538d88eb63d63023ae/lib/iris/tests/test_aggregate_by.py#L502 should do it.''

and a rebase