refactor DuplicateRemover to reduce complexity

- extract removers to there own methods
- remove current value (preserve later)
  so don't need to check if the index was removed
- change tests to PHPUnit instead of PHPSpec
make SearchField fluent
refactor RangeOptimizer to reduce complexity

- extract operations to there own methods
- fix not fully optimizing connected ranges
- change tests to PHPUnit instead of PHPSpec
fix CS

[skip ci]
refactor ValuesToRange to remove internal state remembering

- change tests to PHPUnit instead of PHPSpec
- use closure for comparison (should be GC so no problem with memory)
move FormatterTestCase to Test directory

This allows for easier reusage
fix strict warning

[skip ci]
feature #29 refactor formatters to reduce complexity (sstok)

This PR was merged into the master branch.

Discussion
----------

## DuplicateRemover
- extract removers to there own methods
- remove current value (preserve later) so we don't need to check if the index was removed
- change tests to PHPUnit instead of PHPSpec

## RangeOptimizer
- extract operations to there own methods
- fix not fully optimizing connected ranges
- change tests to PHPUnit instead of PHPSpec

Commits
-------

109636601b39a018ee33ba307a88792825d52bbf refactor DuplicateRemover to reduce complexity
bd33e10161257f1039901e865ce4fcb8b7d55067 make SearchField fluent
633e7466d606f74b2fec5e3818252b0d3a0e041c refactor RangeOptimizer to reduce complexity
e2c57aaea98cd8652e0fd90e7f122b70afc690c5 fix CS
2081e110a425326f277f3e4c85910f4f6127b2fb refactor ValuesToRange to remove internal state remembering
7b7691f6a9f7ed6202f7ee80173c4e80ae73ebef move FormatterTestCase to Test directory
61581fe779d6aa2a4a24d1a1a736965b66dc4632 fix strict warning