Return lists instead of arrays public methods

Replaced
  JsonArray.getValues() with values()
  JsonObject.getNames() with names()

The new methods return an unmodifiable List instead of an array.
Creating an unmodifiable list wrapper is way faster than creating
a new array. Arrays don't seem to have any advantages over List.
Performance improvement: use plain toArray()

Turns out that with Java 1.6, ArrayList.toArray() is much faster  (by
a factor of ~ 2) than the common pattern
    list.toArray( new T[ list.size() ] )