Revert "Add reference counting to ProdSpace."

ProdSpace objects should have value semantics like all other types in mbo for
consistency.  The reasoning behind pointer semantics (and reference counting)
was to have an easy test whether two spaces are identical.  This is needed in
functions like operator addition or multiplication because these are only
possible if the spaces are identical.

However pointer semantics introduces serious inconsistencies with other types in
mbo.  For example, somebody might use a ProdSpace as follows:

ProdSpace h = prodSpaceCreate(2);
TensorOp o;
tensorOpCreate(h, &o);
manipulateSpace(h);   /* Surprise! This modifies how o thinks about its
                         underlying space! */

This reverts commit ef5ab5f6a5092086273691c0a318b433c57c9ca7.
Add CHK_FALSE and CHK_TRUE testing macros.
Add prodSpaceEqual method to check for equivalence of spaces.
Make testing functions static.
Fix destroyProdSpace -> prodSpaceDestroy.