WIP: gufunc core dimensions should not broadcast

This section is pretty good, but it does fall into a common pitfall for editing docs, which is that it's more aimed at explaining the change than it is explaining the end state. Most people reading this document will have no idea what earlier versions did and won't care, so it'd be better to explain how it works first, and then as a kind of parenthetical note how it used to work. Something like:

The signature determines how the dimensions of each input/output array are split into core and loop dimensions. First, each dimension mentioned in the signature is matched to a dimension of the passed-in arrays (starting from the right edge). These are the core dimensions. Every core dimension must be present in the arrays, and if two core dimensions are assigned the same name (e.g., the `i` in `inner1d`'s `"(i)(i)->()") then the corresponding array dimensions must have exactly the same size. No broadcasting is performed. (Note: in numpy version 1.9 and earlier, gufunc core dimensions were broadcast if they didn't match.)

?