Fixed 'maximum recursion depth reached' issue for addition of Order term to another expression containing an order term.

See [issue 3627](http://code.google.com/p/sympy/issues/detail?id=3627) for details. I have mentioned the problem completely there in a comment.

Before,
```
>>> O(x**6) + sin(x)**1.2
RuntimeError

```
Now, 
```
>>> O(x**6) + sin(x)**1.2
sin(x)**1.2 + O(x**6)
```
I have also added a test that specifically tests the reason of the problem (see the comment on the issue page please). If someone has *any* problems understanding the fix, or the test, feel free to ask.