fixed exception bases and added a few exception classes
import os.path
added unicodeobject.h
got operator.c to compile (added a lot more unimplemented c api functions)
got import operator to work
trying to fix import
disable rewriting
Merge pull request #142 from tjhance/base-exception

fixed exception bases and added a few exception classes
Improve tuple unpacking behavior

- Use the right unpacking protocol (ie don't check __len__, just try to iterate)
- Handle unpacking exceptions appropriately
- Expand the targets of assigns correctly (think: f().x = 1)
-- this was not just for tuples but came up here first; this also was broken:
[0 for i in xrange(5)][0] = 1
(silly but legal)
Partial attempt at enabling dynamic type analysis tiering

In theory it's simple: we just run cheaper type analysis on lower tiers.
In practice it's more complicated, since the different tiers have to
cooperate on the types that they send back and forth.

I fixed up some of the code that didn't expect to receive a type worse
than what it knows to be true.  Ran into an issue where we have to
treat potentially-undefined symbols specially, since we can't do a class
check on them because they probably point to garbage.

Stopped there for now, since this section of the code is horrible and we
need to rewrite the tiering framework anyway.
Fix the last few issues with optparse_test.py behavior

- was missing comparison methods on 'long', and we were happily using the default comparison rules
- isinstance for oldstyle classes
- int * str (who does it that direction??)

Performance is abyssmal: 2s for us vs 30ms for CPython
Some misc stuff to get a benchmark working

1-arg version of exception constructors
str*bool -- who would have thought
Add function.__call__
Surprisingly, you actually are allowed to modify a std::string

(as long as you get a pointer to it in the right way)
Some misc int functions
Found the issue: don't handle imports in try blocks correctly
Fix import handling wrt exceptions

Also fix a bug where we were rewriting all member descriptors
as OBJECT types (ie just load the offset), which is what was making
hashlib crash (the first thing that uses non-OBJECT member types).
Add a check to make sure we don't reuse the same fake node names

Caught a couple benign places and one potentially-real issue.
Fix execfile() behavior

It doesn't create a new module at all -- it directly uses the existing one.

Fixing that let us clean up some of the module handling code.
str.replace

Also had to fix some bugs with codegen function types --
not sure how those snuck through