Fix a bug when CFG-izing certain structures in try blocks

Augassigns and for loops had an issue where they would try to
do something like 'i = i.__iadd__(j)', ie have multiple operations
in a single statement.  If an exception occurs, it's not clear if
the name got redefined; so far we just assume that it always does (since
we don't have the mechanism to propagate the name along only one
control flow edge).

So we have to split up those multi-operation-statements into multiple
statements.
Add int->long promotion on overflow

This commit is a straightforward implementation that doesn't include
any speculation-like optimizations.  For operations that can overflow,
just relax the type-return-specification to UNKNOWN, and do the overflow
checks in the runtime.  This means that we no longer emit fast native
integer instructions even if we know operands are ints.

Will have to add optimizations:
- range analysis so that we can know there won't be overflow
- deopt-on-overflow so that we can work with unboxed ints even if there's potential overflow
Implement function decorators
Support decorators on classes as well
Implement set literals
Implement generator expressions by converting to generator functions
Optimize LivenessAnalysis

We were caching certain liveness results (only crawled each BB once
looking for name use/defs), but we were still traversing the entire
CFG for every liveness query.
Now, each query does a single full CFG scan, and computes the results
for all BBs and stores them.

Reduces the time to 'import re' from about 13s to under 2s.
Added capitalize and title functions for strings
ported objmodel.cpp to use rewriter2 exclusively, deprecates rewriter1
removed rewriter1
fixed a bunch of bugs
got rid of 2s
Implement dict.__contains__

TODO: When using {} to construct the dict, contains works. However
if the dict type is used, the runtime crashes in various ways (see
tests/dict_contains.py)
Implement tuple.__add__
Implement builtin function id()

Currently returns the address if the Box*
Merge branch 'master' of https://github.com/dropbox/pyston
Fix the dict() constructor

ie actually add one.  Before dict.__new__ would simply call
object.__new__ and return something that was very much not a dict :/
Merge branch 'master' of https://github.com/dropbox/pyston

Conflicts:
	src/runtime/dict.cpp
Merge pull request #113 from tjhance/rewriter2

Rewriter2
Import the CPython 2.7.7 'Modules' directory

The goal is to be able to use these as-is