Fix a bug with the format of bark.useragent_ip

The proxy processing code placed the raw IPAddress object into the
bark.useragent_ip key of the WSGI environment, instead of converting
it to a string.  This could not be discovered in the unit test, since
proxy._parse_ip() was mocked out.
Add function tests for proper proxy handling.