Don't chdir when shelling out to thrift

Instead, turn the output (-o) parameter to thrift
into an absolute path.  This fixes a bug where
thrift files that include other thrift files
relative to a base passed in via -I are unable
to find the included file, since thrift is
being run with a working directory of codegen_root
rather than the process's initial cwd.