add BytesMemoryObject to extra.h and a binding for it in llvmpy/src
modify build process to support all targets

my goal is to facillitate a wide range of disassembly capability through
llvm disassemblers, so supporting as many machine targets as possible is ideal.
added TargetRegistry_targets_list

this allows all targets to be enumerated. this is generally useful,
but i specifically wanted to be able to see which targets report
having a disassembler. it is necessary to init the various
target components in order for them to report that they have one,
thus i added InitializeAllDisassemblers and InitializeAllAsmParsers
to TargetSelect.py
added Target.createMCSubtargetInfo and createMCDisassembler

also added bindings to classes required by the target methods. also
added a convenience function to initialize all target components to
the llvm module
implemented binding for MCDisassembler.getInstruction

also added new llvm.mc module to act as higher level
python access to the MC section of LLVM (added Instr
and Disassembler classes).
fixed typo in new_from_triple and added args to new_from_name

new_from_triple: need to pass subtarget info to new_from_target

new_from_name: allow caller to pass cpu and feature info
added MCOperand methods
fixed arm test: arm code needs to be reverse b.c. its little endian
add MCAsmInfo
changes to make llvmpy compatible with development branch of llvm

mostly just removing stuff and changing function prototypes.
with these changes, llvmpy compiles and llvm.test() passes.
use (llvm 3.4) built in StringRefMemoryObject instead of BytesMemoryObject
conditionals for compatibility with llvm < 3.4

i only intend to support MC bindings (and anything reliant on MC)
for llvm 3.4 and greater.
added new MC classes for richer disassembling functionality
add some MCAsmInfo bindings
refactor TargetMachine into a new target module

TargetMachine is generally useful outside of the execution engine
context so i think it makes sense to move it into its own module.
some fixes so that test/testall.py will run

some easy changes to core.py which were just conditionals on llvm
version. for the broken tests which i didnt know how to fix i
simply disabled them.
TargetTransformInfo stuff doesnt work in llvm >= 3.3
moved the MC data type access to TargetMachine

Disassembler now simply needs a TargetMachine object
and it will be able to access all the descriptor objects
it needs for disassembly through the target machine.
fix typo
added tests to testall for llvm.target and llvm.mc

tests dont check for correctness, just exercise the API