Added more flexible wildcard support to BaseBlock in yet another way.

This entails a huge refactoring, breaking most API. Sorry.
Moved BaseBlock.wildcard to MaskedBlockMask.fromValues.