Checkpoint to ask for help.
Merge branch 'master' into pure_python_proxy
Restore 100% coverage.

Some tests are still failing. :(
I think I fixed some tests. Tres, can you review?
Avoid overwriting of checked name when tests compare. Strangely, only the
Python proxy implementation is affected. I am not sure why __eq__ is not
looked up during test output comparison with C-based proxies.
Make sure we use the API to create a new proxy. The tests depend on that
expectation.
Fixed power tests by disabling the ones for PyProxy that expected
behavior that cannot be created with a pure Python proxy implementation.

Undid one previous checking where the DummyChecker only records the first
checked name.

In several forbidden tests, add a few allowed names, since those are
needed to make the tests pass. In the Python version of the proxy, some
__<name>__ methods are used where the C implementation gets away without
them.
Implemented proper handling when __str__ and __repr__ are not allowed. In
those cases we do not want to fail with a cryptic error, but provide an
informative output.
Fixed all attr access: __getattr__, __setattr__, __delattr__.

The main work consisted of making sure that access is allowed and that
results are also proxied.
Change the test expectation that was failing for the C and Py proxy
version.
Implemented rich comparison operators as non-checked, which is what the C
implementation does.

Implemented __coerce__() in a special way, since _check_name did not work
for some reason.

All tests pass on Python 2.7.
Start of PyPy support.
Actually made the security proxy secure by not allowing access to
_wrapped and _checker.
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!
Add test environments for the PURE_PYTHON environment variable.

Get the one test which failed under that environment to pass.
Note support for PyPy.
Prep 4.0.0b1 release.
svb