Fail freeing a block IFF the block is static data.
Fix moronic use of offsets in PEEK instruction.

Each PEEK essentially doubled its offset, so it would temporarily work
until the offset became around block_size / 2, at which point things
would go wrong in subtle ways.

Go figure, I add bounds checking but do something like this.
Allow literals for the input arguments of MEMDUP/LEN.

Makes sense since some inputs to these instructions might be static
data references.
Remove block/_in from exec, use local variables.

This should hopefully make things slightly more const-correct than they
previously were.
Add esp preservation.

This probably looks a little funny since the preserved esp is ebp
after updating it to account for arguments on the stack. Basically,
after the call, esp will be set to the stack's original size sans
arguments, so neither the caller nor the callee are required to clean
up the stack.
Add support for char literals to asm2bc.
Fixed up bounds check.

Allows for size 0 and size = bsize where offset is 0. Previously
would've returned false for those cases.
Improve instruction logging a bit and re-disable it.
Use for-range loop in find.

Would use std::find, but it ends up being longer, the compiler isn't
too pleased about it, and readability suffers for what would otherwise
probably be the same generated code, so for-range loop it is.