Introduce a matcher service
Move match classes and interfaces

Move to psr-4
Prepae match fields to become plugins
Make matching rule configuration a config entity
Convert matching rule configform
Add match field plugin

Added plugin manager and annotation for match fields.
Updated interface and base class.
Made unsupported field a plugin.
Add annotation for text match field
Prepare to make engines plugins
Discover engines as plugins

Added plugin manager
Added annotation
Changed matcher to use plugin manager to get the engines.
Add engines config form
Make default engine a engine plugin

Added annotations
Moved to correct namespace
Cleaned up the base engine class
Convert "Default matching engine configuration" page
Pick navigation stuff
List engine configuration on config page
Toggable engines

Added cofnirm form to toggle engine status
Added toggle actions to engine list
Excluded disabled engines in matcher,
Fix route match collition

The route crm_core_default_matching_engine.rule_edit was detected instead
of crm_core_match.enable and crm_core_match.disable.
Dragable table for match rules

Removed form stuff from the match field classes.
Displayed the rules settings as table
Made the table dragable
Tested default matching engine

Added unit test to test the match method of the default matching engine.
Update implementation to new APIs.
Tested field matchers

Added test for the field matchers.
Updated the match implementation in the base matcher.
Consolidate match plugin namespaces

Organized everything below crm_core_match.
Renamed MatchField to FieldHandler.
Improved attriubte naming in matching rule

Renamed feilds to rules.