allow cKDTree.query taking a list input in k.

the list input k will return only the neighbours ranks as
given in the list.
The squeezed return shape was to match the behaviour of the old code -- it differs from the documentation. 
This patch also updates the documentation to match up the actual behaviour of the code. 

You can verify this with the following script (assume the 13a73f4e cKDTree.pyx is checkout as cKDTreeOld.pyx in the same directory of the patched cKDTree.pyx):
```
import pyximport; pyximport.install()
import numpy
from ckdtree import cKDTree
from ckdtree_old import cKDTree as cKDTreeOld
#from ckdtree import cKDTreePairIter

test = numpy.indices((10, 10), dtype='f8').reshape(2, -1).T

tree = cKDTree(test)
treeold = cKDTreeOld(test)
print 'after patch', tree.query(test[0], k=1)
# writes: after patch (0.0, 0)
print 'before patch', treeold.query(test[0], k=1)
# writes: before patch (0.0, 0)
print 'after patch', tree.query(test[0], k=2)
# writes: after patch (array([ 0.,  1.]), array([0, 1]))
print 'before patch', treeold.query(test[0], k=2)
# writes: before patch (array([ 0.,  1.]), array([0, 1]))
print 'new feature of patch', tree.query(test[0], k=[33])
# writes: new feature of patch (array([ 5.83095189]), array([53]))
```