Numpy arrays

With this PR sliced array operations will return numpy ndarrays of corresponding type containing the requested range. If numpy is not found during the setup process, the old behaviour of returning python lists of python objects is preserved. The new code is 5 times faster than the old one.

     jpype.JArray(jpype.JDouble, 1)(np.random.random(10**7))
     %timeit a[:] # np array
     # 10 loops, best of 3: 56.6 ms per loop
     %timeit a[:] # pythonic list
     1 loops, best of 3: 334 ms per loop