Changed strategy to hide wrapped to not use the secret anymore, but look
at the frames. This fixes a bunch of issues when actually doing binary
ops (for which I added a test now).

__len__ must return a non-proxied object, so I added a new parameter to
the name check wrapper to handle that case.

Fixed all but 12 test failures on PyPy.
- Make sure that __str__ and __repr__ never fail by catching all exceptions
  and using the custom fallback. (This is equivalent to the C Proxy behavior.)

- Allow __getslice__ and __setslice__ to access the original object's
  implementation instead of always falling back to __getitem__ and
  __setitem__. Do we really want to support this or just remove the test?
  (It is deprecated this Python 2.0!)

- Make sure that Checker.set_permissions is set initiated as an empty dict, if
  not provided. While not immediately obvious, this is the C-based checker
  behavior as well.

Oh yeah, all tests pass now on py26, py27, py32, py33, and pypy!