Follow-up for r1429858.
Further fixes for https://issues.apache.org/bugzilla/show_bug.cgi?id=54371
Handle the additional cases that r1429858 did not ('~', '+', ';' and '&' characters in the context path) and simplify at the same time.

git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc7.0.x/trunk@1429991 13f79535-47bb-0310-9956-ffa450edef68