Replaced fuzzy comparison system with a better system.

Mask and data are now cleanly separated (which, as an aside, makes the ``allowNoData`` flag in ``WorldEdit.getBlock`` useless)
Every fuzzy match is now done via masks instead of via -1 and special cases everywhere.

It of course breaks API, but that's unavoidable without wasting memory by storing the mask in *every* ``BaseBlock`` instance.

I also took out one use of the ``allAllowed`` parameter in ``WorldEdit.getBlock``.
The javadoc suggests it has something to do with the "disallowed-blocks" blacklist, however the code I removed doesn't deal with blacklists.
Due to the horribly nested structure of this thing, I was unable to find the place where that flag is actually set one way or the other.

What's the use of all this?
It allows using //replace hand <new block> with, for example, a birch log in your hand and it will replace *all* birch logs and only the birch logs, instead of either just the vertical birch logs or all logs including non-birch logs