fixes factor(), separatevars(), combsimp() from Issue #6280

- [x] delete comment string in test

This fixes 3 of 5 wrong results in Issue #6280.
Two other wrong results is due to Issue #3741.

This code prevents **free_symbols** property from falling back to **Symbol**'s **free_symbols** where this method intefere with **Symbol**'s default noncommutativity, so we had such behavior: 

```python
>>> A = Operator('A')
>>> A.is_commutative
False
>>> A.free_symbols
set([A])
>>> A.free_symbols.pop().is_commutative
True
```

If we define **free_symbols** explicitly, then things became normal:

```python
>>> A.free_symbols.pop().is_commutative
False
```

After that loop in **_mask_nc** that is used in errand functions works in right way, and we have normal behavior:

```python
>>> A = Operator('A')
>>> B = Operator('B')
>>> Z = A*B-B*A
>>> combsimp(Z)
A*B - B*A
>>> factor(Z)
A*B - B*A
>>> separatevars(Z)
A*B - B*A
```

As for **collect**, it is not working right even for plain nc-symbols, so it more about Issue #3741.