ENH: percentile function with additional parameters and vecorization

The percentile function was enhanced by adding limit and interpolation
parameters to give it similar functionality to SciPy's stats.scoreatpercentile
function.  In addition the function was vecorized along q and rewritten to
use the partition method for better performance.
MAINT: cleaning up percentile function.
DOC: changes to scoreatpercentile docstring, doc test now passes
TST: additional test for percentile
DOC: improve __numpy_ufunc__ documentation

Cross-reference it from Ufunc documentation and mention the version it
was added.
MAINT: changed 'closest' interpolation to 'nearest'
TST: note on overwrite_input parameter in percentile

* added note that `overwrite_input` has not effect when `a` is not
  an array in the percentile function.
* added unit test to verify that no error is raised when `a` is not
  an array and `overwrite_input` is True.
BUG: Fix issue with PR #3491

Don't convert unicode string to ascii string before getting byte length.
Also, get length of non string type as ascii or unicode depending on
output string type.
Merge pull request #3765 from charris/forward-port-3761

BUG: Fix issue with PR #3491
Merge pull request #3658 from jjhelmus/percentile_enh_new

ENH: percentile function with additional parameters and vectorization
Merge pull request #3752 from pv/doc-some-xref

DOC: improve __numpy_ufunc__ documentation