Add enough locking to make the GRWL somewhat safe

Add some basic locking to:
- code generation (one lock for all of it)
- garbage collection (spin lock for allocations, global serialization for collections)
- lists (mutex per list object)

Can run the GRWL on some simple tests (microbenchmarks/thread_contention.py and thread_uncontended.py)
Performance is not great yet
Makefile cleanup

Make rules more general, and generate rules that can't be patterns
Made it easy to add a pyston_grwl target
more grwl experiments
Starting to add per-thread caches to the allocator

Trying to add a generic PerThread class has involved
a journey into the wonderful world of template programming,
including C++11 variadic templates.
make format
Merge branch 'master' of github.com:dropbox/pyston