Imported a copy of libudis86 1.7.1

A robust disassembler capable of disassembling most (all?) of the
32bit & 64bit Intel assembler instructions. The plan is to use this
instead of our home-grown (and incomplete) disassembler.
Use libudis86 for disassembling instructions for x86 and x64

This makes hooking the 'Tcl_EvalObjEx' function in the Tcl library on OS
X work. It probably fixes quite a few other cases in which a "some
instructions unknown!" messages was printed as well. As a nice side
effect, it allows throwing away the custom code for recognizing and
skipping instructions.

All tests still pass.
Merge pull request #12 from frerich/dedicated_disasm

[NEW] Switch from homegrown lame custom x86 instruction parser to libudis86 disassembler to fix "some instructions unknown" errors. (Frerich Raabe)
remove PROT_WRITE from islands and hooked functions
randomize branch island location on i386
clean up whitespace
add 64-bit randomization
whitespace
whitespace
whitespace
Merge pull request #14 from ianbeer/semver-1.x

[FEATURE] Remove PROT_WRITE from islands and randomize allocations. (Ian Beer)
Stop using mach_host_self and host_page_size, fixing a port right leak

It is incorrect to use mach_host_self without disposing of the send right to the host port with mach_port_deallocate when done with it. http://crbug.com/105513 shows the sorts of problems that can arise when send rights aren’t properly deallocated.

mach_host_self was only used by mach_override to be able to call host_page_size. host_page_size is unnecessary, because it always returns a constant value, PAGE_SIZE, which is also known at user-land compile time. See libsyscall/mach/mach_init.c. User code is better off just using this macro directly, and not fumbling with the system calls to obtain and properly dispose of a send right to the host port.

(You need to mach_port_deallocate the ports you get from mach_host_self and mach_thread_self, but you must not normally deallocate the one from mach_task_self, because mach_task_self is actually just a macro that references a global variable. It doesn’t add any port rights at all. See <mach/mach_init.h>. If you bypass the macro and call the real mach_task_self system call, you do need to call mach_port_deallocate, but this situation is incredibly rare.)
Merge pull request #16 from mark-chromium/patch-1

[FIX] Stop using mach_host_self and host_page_size, fixing a port right leak. (Mark Mentovai)