Update MatcherList to meet the new matcher API
Fix typo and remove duplication
Create MatcherResult interface to start the new result API of matchers
Create Success
Create DiffableFailure
Create Failure
Create AbstractMatcherResult to remove duplication
Start refactoring assertion by removing old Expectation and refactoring Assertion class
Use state pattern to make code simpler
Move decorators to ElementDecorators subnamespace
Adapt new result API