py: Fix some bugs in mpz; add mpz_from_ll and mpz_set_from_ll.

A couple of bugs in mpn_shl, and overflow bug in mpz_set_from_int.
py: Implement integer overflow checking for * and << ops.

If operation will overflow, a multi-precision integer is created.
Add more tests for multi-precision integers.