Errors cleanup

Improve error handling code:

1. Don't keep zvals internally, inroduce `hp_error` struct that contains all the error data.
2. Add converting code from `hp_error` to `zval` and back, introduce `hp_string` struct to aid with passing strings around.
3. Introduce new php function `xhprof_last_exception_data()` that returns an array of data with information about the last exception. Sadly at this point, we don't have access to the stack trace.