[WIP] Refactored ReplaceStrategies into Commands

Fixes #19, almost completed

Tests are currently failing because I didn't yet updated the 4 `EditorSpec` manipulation methods. I'm not sure how to properly write test with phpspec about correct command being created inside the related Editor's method. Waiting for some feedback on this point :wink: 

Moreover, I'm not really satisfied with the current solution because a `LineContentConverter` is instantiated each time a Command is created.

I hope the current architecture isn't too awful and is now opened for some review :smile: 

- [X] Create commands
- [x] Adress comments and fix tests
- [ ] Move `Engine\NotSupportedException` to `Search\NotSupportedException`
- [ ] Remove replace engine and strategies
- [ ] Update docs
- [ ] Optionally create a ReplaceAllCommand or open a new PR for this




You should always put a comma at the end of an array element. This way you can't forget it when you add a new element, and the git diff will highlight only the added line.