Change the semantics of the Array class

Instead of a map from integers and strings to values (as in PHP), it is now more
similar to a Python list or C++ vector. To make a map, use Map.

Map is now used instead of Array for the parameters to commands.

Add a printvar specialization for Map.

Ensure that Map's comparison operator calls operator<, so that equal objects
are indeed seen as equal.
Fixes to the compiler too