Move all conflicts related methods into conflicter file
Simplify Conflicter interface

By:
1- Making the argument stricter - less edge cases to handle
2- Deleting all that event handling non sense and passing simple
   callbacks

As this API is only used internally, this shouldn't cause backward
compatibility issues.
Simplify Conflicter prompting logic
Remove conflicter unused methods.

Pass around a file object very similar to Vinyl so we can more easily
upgrade to only using vinyl eventually.

Add documentations.