Do not test implementation

Big fix of `TestCollection` hierarchy, many helpers methods added to tests (beyond just `collection` and `collectionClass`), containg test-usable constants. Moved these methods to protocol "fixture"

Lot of test rewritten to use fixture methods, many tests work over whole hierarchy. Even `SetTest` was brought in to the `CollectionTest` hierarchy. New structure of tests uncovered a few bugs (String and Array returning bogus value in `at:` family when index was non-number; Set hasn't `removeAll` implemented).