Add another test to Add::is_canonical()
Fix other problems like (3x+5)^2 and similar

Few more tests added.