fix buggy __contains__
blocks should be a flattened list for blockdiag
add nested and flattened list safeguards to all op
blockhoiz. and blockvert. are non-symmetrical
add test suite for block operators