factor gets deep flag

This allows factor to work inside functions:

e.g in answering the question, "What is the angle subtended by a circle of radius r that is a distance d from the origin?":

```
>>> t=Circle((d,0),r).tangent_lines((0,0)) 
>>> a=t[0].angle_between(t[1]) 
>>> simplify(a)
acos((d**4 - 3*d**2*r**2 + 2*r**4)/(d**2*(d**2 - r**2)))
>>> factor(_)
acos(d**4/(d**4 - d**2*r**2) - 3*d**2*r**2/(d**4 - d**2*r**2) + 2*r**4/(d**4 - d **2*r**2))
>>> factor(_, deep=1)
acos(-(-d**2 + 2*r**2)/d**2)
>>> expand(_)
acos(1 - 2*r**2/d**2)
```

That last expression is a lot nicer than the default form obtained from factor.