Fix: comma-spacing has false positive when paranthesis are used (fixes #1457)

:construction: do not merge :construction: 

A new attempt to build the comma-spacing rule that analyzes the source code instead of the AST. All of the existing tests pass as well as the following new tests:

- [x] `"foo((a), b)"`
- [x] `"var b = ((1 + 2), 2);"`
- [x] `"parseInt((a + b), 10)"`
- [x] `"go.boom((a + b), 10)"`
- [x] `"go.boom((a + b), 10, (4))"`
- [x] `"var x = [ (a + c), (b + b) ]"`



Currently the following tests to not pass:

- [ ] `"['  ,  ']",`
- [ ] `"do(/,/)",`