Make the bp api slightly saner

Been holding this back for too long that I forgot about this.
This is needed for the windbg backend which associates an id to every breakpoint, the solution I hacked up was using a simple hashtable but it can be done in a cleaner way by abusing the 'data' pointer for this.
(This exploits the fact that the data pointer is never used/freed, definitely not a great assumption. Feel free to suggest something cleaner)
(As a side note, many of the ints in RBreakpointItem could be bit-packed for some memory efficency)