Use Integer for Add/Mul's coef_ (instead of Basic)

It has to be Integer anyway, so this simplifies a lot of code.
Simplify code using the fact that coef is Integer

Lot of casting and if statements are gone.
Use rcp_static_cast() whenever possible

It turns out that we always first check the type, so we can safely use
rcp_static_cast(), which is faster.

Fixes #30.
Merge pull request #35 from certik/mul_int

Several refactorings