Stabilize BSP monitoring code

There were all sorts of stupid things going on with this code:

1) Double freeing of m_pCmd sometimes.
2) Calling delete[] on statically allocated char* m_BSPName.
3) Never freeing libXML parser context.
4) Failure to call Reset() from error handling / debug blocks leave monitor in unknown state.

Not saying it's bullet proof now, but I went from errors every 2-3 compiles to no errors in 10+, and more consistent invocation of cleanup routines.