Allow "_" in URIs.

Note that this is contrary to RFC-2396, which only allows alphanumeric
characters and hyphens. We need this change because internet hosts out
there clearly don't care enough about standards.

bug: 18023709

Change-Id: I9459f58d49ccc68af887a14c889eaa60b6c3150d
Only allow once GC request at a time.

There is no reason to allow multiple, allocating threads may have
multiple GC requests before the GC starts.

Bug: 17942071

(cherry picked from commit 71891f9da2fbcb865931da70ae759032e6698106)

Change-Id: I5e2162373bcef1027eb71e5b1699186ff015f92d
Use equals for comparing percent strings.

bug: 18235329
bug: 15476051
Change-Id: I33fd9df777cf62688476de36ccea4fe944358f60