Enable LEVElideUninitOrZeroElements for arrays of non-scalar values (e.g. structs or unions).
Update MemoryStateRegion and MappedValue to correctly handle regions that do not exist or are not sufficiently large.
Show a dotted red border on the left, bottom, and right sides of nodes which have an associated runtime error.

Also, don't initially draw nodes if they're going to be drawn over with the hover style immediately afterwards.
Use wxAutoBufferedPaintDC to avoid flickering.
Correct use of wxDC::DrawLine() to account for the fact that the final point is not included in the line.
Update execv, execvp, and execve to use SpeculativeTraceClose to handle trace closing and opening.
Archive traces prior to calling exec functions, and extract them to resume tracing if the exec fails.

This ensures that the tracing of programs which "terminate" via exec behaves the same as all other programs.

Also, fix the recording of errno to ensure that the location of the errno variable is recorded as known memory.