New: Added no-trailing-spaces rule (fixes #995)

`on` perf:

```
CPU Speed is 2261 with multiplier 7500000
Performance Run #1:  2922.464079ms
Performance Run #2:  2915.99096ms
Performance Run #3:  2871.693ms
Performance Run #4:  2842.881841ms
Performance Run #5:  2869.45368ms
Performance budget ok:  2871.693ms (limit: 3317.1163202122952ms)
```

`off` perf:

```
CPU Speed is 2261 with multiplier 7500000
Performance Run #1:  2874.2219999999998ms
Performance Run #2:  2815.7648ms
Performance Run #3:  2869.23876ms
Performance Run #4:  2908.95748ms
Performance Run #5:  2862.79916ms
Performance budget ok:  2869.23876ms (limit: 3317.1163202122952ms)
```

I don't understand what's happening here. Doing a replace seems like unnecessary overhead for matching. Is there a different way to do this?