NTile function

#### Problem description

I've investigated on pandas a `ntile` operation alternative. I just found `qcut` but it seems there is a difference between them (at least I could have the same results I expected).

for more details about `NTile`[3] :

> NTILE() function allows you to divide ordered rows in the partition into a specified number of ranked groups as equal size as possible. These ranked groups are called buckets.
> The NTILE() function assigns each group a bucket number starting from 1. For each row in a group, the NTILE() function assigns a bucket number representing the group to which the row belongs.

I have locally a python version of this function, is this something I could open a PR to pandas? if yes, I would be very happy to work on this PR.

any feedback and/or guidance would be very appreciated.

some references about ntile:

[1] https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions101.htm
[2] https://www.sqlservertutorial.net/sql-server-window-functions/sql-server-ntile-function/
[3]https://www.postgresqltutorial.com/postgresql-ntile-function/

thanks!