Rewrite of assembly cache
Added unit test for assembly cache
Removed assembly cache mechanism; only versioning is now in PyOP2
Modification to _op for Dat objects to properly support subclasses