Fixing some leaks and performance.

Uses some glib defines toSupport older glib versions.
Merge pull request #93 from awsaba/more_leak_fixes

Fixing some leaks and performance.
first steps toward general interrupt events (real intention is int3 events for xen, but starting generic and building a general driver interface
add interrupts_t enum and an 'enabled' member to the interrupt_event_t struct
xen driver, events: define xen_set_intr_access, declare its prototype, and wire up xen_set_int3_access
interrupt event example code...scary that it took all of 30 seconds
events - interrupt clearing : convey that the event is to be disabled
events libvmi.h : add a 'reinject' member to the interrupt_event_t struct to help control whether interrupts are delivered to the target VM after interception
Events - interrupt example: reinject events by default
xen events - interrupt processing function implementation and invocation during xen_events_listen
int3 interrupt reinjection failure : comment elaboration. it is critical that the library and library users both, in concert, understand the implications of this particular feature: useful, but dangerous.
events - process_interrupt_event : typos can be catastrophic, from time to time.
Use correct instruction length for INT3. Improve reinjection documentation.
fix typos, improve xen_set_int3_access
forgotten break in the MEM_EVENT_REASON_INT3 section of vmi_events_listen
fix interrupt example to by removing all remaining vestiges of the MSR code
further refinement of reinjection, documentation
comment clarification
update comment about return code of trap reinjection function
handle reinjection failure only on Xen versions that set an actual return code; update comments.