ENH: stats: Rewrote stats.obrientransform:

* Vectorized and simplified the computation.  For largeish arrays,
  this gives up to 60 times speed improvement.
* Copy-edited the docstring, and added 'References' and 'Examples'.
* `TINY` changed from 1e-10 to `np.sqrt(np.finfo(float).eps)`.
* Added more tests.

Note that this PR maintains (and documents) the current API.  In particular, when the arguments are arrays of different lengths, the return value is a single numpy array with dtype `object`.  For example, this is scipy 0.12.0 with numpy 1.7.1:

```
In [1]: import scipy

In [2]: scipy.__version__
Out[2]: '0.12.0'

In [3]: from scipy.stats import obrientransform

In [4]: a = np.arange(3)

In [5]: b = np.arange(4)

In [6]: obrientransform(a,b)
Out[6]: 
array([array([ 1.75, -0.5 ,  1.75]),
       array([ 3.33333333,  0.        ,  0.        ,  3.33333333])], dtype=object)
```
After this PR, the results are the same.

Changing this API (as discussed in the comments below) is a separate issue from this PR.