Updated RouteMatcher so routes can be updated and removed while in use.
The preexisting API is unchanged. Two new methods setUpdatable(boolean) and removePattern(pattern, method) were added.
Before updating or removing routes, the setUpdatable(true) should be called and brief delay should occur.
It adds try/finally and ReenetrantReadWrite.ReadLock lock/unlock overhead to all route matching until setUpdatable(false) is called.
If the setUpdatable(true) is not called the route updates and remove will operate, however, NullPointerException or ConcurrentModificationExceptio
Comprehensive tests and concurrency tests were added which validated the issue before the changes and validated proper operation after the changes
If you deem the changes too substantial, I recommend adding an interface and changing the name of this class to  UpdatableRouteMatcher so that
both RouteMatcher features are available for users needs. Searching the Google vertx group revealed at least three separate inquires into
route updates or removals from in use RouteMatchers.