DERBY-6169: Reduce visibility of classes and methods under impl/sql

Stop exposing references to the internal array of saved objects in
GenericPreparedStatement by making the following changes:

- IndexRowToBaseRowResultSet: Since it doesn't need the complete
  array, make it use getSavedObject(int) instead of getSavedObjects()
  so that it only retrieves the single object that the caller is
  interested in.

- VTIResultSet: Remove code that may perform lazy initialization of
  one of the saved objects at run time if it was initially null.
  Instead, make sure it is initialized when the query is compiled.

- GenericPreparedStatement: Change getSavedObjects() to return a
  read-only view of the internal array, so that callers cannot
  accidentally modify it.