Make the (x+1)^2 expansion work (fixes #38)

We just needed to take into account the overall coefficient in Mul and Add.
A test was added.
Add another test to Add::is_canonical()
Fix other problems like (3x+5)^2 and similar

Few more tests added.
Merge pull request #40 from certik/expand

Make the (a*x+b)^2 expansion work