Added a new client, everything_watched_aug, that permanently upgrades a basic block from null to watched when a fault occurs within that basic block. This seems to result in about 1/4 of the basic blocks being null, and the rest being watched. Haven't tested with different granularities of watching, i.e. going from watched to null on function calls. I did some slight modifications to the rcudbg tool, which includes similar code. These changes are untested and likely break the tool for the time being; I will fix this when it returns to being a priority. Added a number of internal error detection stuff in, including checking that code cache allocations are all initialized with int3s, and requiring that instruction_list::encode be passed a second parameter which is the exact size in bytes that the encoded instruction list will occupy.
Minor fixes for user space compilation.