Rat implementation and tests unmodified from Go source
Insert missing doinit() in Int.Sign()
More missing doinit() and some constants
Implement gmp.Rat using mpq_t from GMP

This passes the tests for GMP with the following minor differences
  * Num() and Denom() return a copy not a reference, so
  * If you want to set them use the new methods SetNum() and SetDenom()