Added test for toString, and fixed bugs in toString itself; toString no
longer calls .toString() of potentially null objects; resulting String
now prettier (and closer to the given description) as spaces are now
only inserted between items, not between item and bracket.
Prev result: [ 1 2 3]
New result:  [1 2 3]