Enhanced RouteMatcher so routes can be updated and removed while in use

•	445552  RouteMatcher throws ConcurrentModificationException if updated while route matching
•	445554  RouteMatcher doesn't support updating a route or removing a route

The preexisting API is unaltered. Comprehensive tests were added before changes which validate existing functionality and reveal the ConcurrentModificationException. After the changes the tests validate the functionality is equivalentl and the ConcurrentModificationException no longer occurs.

A removePattern method has been added. Tests were included that verify proper operation.

Signed-off-by: tcollinsworth <tcollinsworth@axeda.com>