Add test that showcases broken behaviour from #1391

This shouldn't raise, at the moment of this commit this will raise a
AttributeError because of attempting to call lower() on the not_ object.
Proxy attribute access to the underlying object

This is a smart proxy, in that if the attribute being accessed is a
function, it will return a wrapper so that after the attribute has been
called on the original value we make sure to return ourselves.

This way not_('TEST').lower() will return an object that is the same as
if the user has typed not_('test'). This is mainly of use in predicates
that get lowercased automatically, for example in @view_config, the
AcceptPredicate is lower()'ed.

Closes #1391
Add tests for the getattr proxy on not_