thrift.compiler: compatibility with fbthrift

fbthrift's compiler doesn't provide a -out flag.  It instead, provides a
legacy -o flag which inserts all the objects into a subdirectory named
gen-{blah}, where blah is the language (e.g., gen-py).

So, update the code to use -o and add paths relative to a gen-py
subdirectory.

Verified with both fbthrift and opensource thrift.

Note: one unittest still fails by default with fbthrift because the
generated python fb303 sources committed to sparts were built using
apache thrift, which is incompatible with fbthrift's python libraries.
Only require external `mock` for python < 3.3

In `sparts.deps` use `unittest.mock` for newer pythons.
Semi-revert of fb2e3ca79b768d6e87136b2b506d2d782de575ae

HAS_THRIFT (and `imp` in general) doesn't seem to play very nicely
with `setup()`-installed packages in python2.6.

Let's just use traditional imports for now instead.