Added missing Python methods for proxied java.util.List objects

Squashed https://bitbucket.org/santa4nt/jython/commits/branch/fix-issue-2215
as a single changeset

Part of the fix for http://bugs.jython.org/issue2215
Completes proxying of java.util.List objects

Objects implementing the java.util.List interface are now fully
proxied so they appear to be semantically equivalent to Python
objects. This completes the fix for http://bugs.jython.org/issue2215,
although similar treatment still needs to be done for java.util.Set.

Important notes, including a backwards breaking change:

* The remove method on such proxied List objects now follows Python
  sematics: a ValueError is raised if the item is not found in the
  java.util.List. In the past, Java semantics were used, with a
  boolean returned indicating if the item was removed or not. Given
  how this interacted with Jython, such remove invocations were in the
  past silent, and perhaps were actually a bug.

  In the Jython standard library, one module had to be updated
  (Lib/_socket.py, which provides the core socket and select semantics
  using Netty 4), so this backwards breaking change may have minimal
  impact.

  See https://docs.python.org/2/library/stdtypes.html#typesseq-mutable

* List-like objects (those implementing __len__, __getitem__) cannot
  be used to initialize proxied java.util.List objects. This is a
  separate problem - they should be proxied so that they appear like
  List objects in Java space, and available as such for any Java code.

* However, xrange objects can now be treated as a java.lang.Iterable,
  which is seen in similar construction tests.

* No additional synchronization guarantees are provided on the
  underlying java.util.List. Use Collections.synchronizedList if this
  is needed. This contrasts with how Jython's builtin list object
  works, but is comparable to how we chose to proxy java.util.Map
  objects.