ArrayBasedModel gets all core unit tests

In addition to its own specific test, ArrayBasedModel gets put through
all the tests that Model has as well.
make ArrayBasedModel pass all unit tests

Small bugfixes which were caught when putting it through the same unit
testing that Model has to go through.