Enable dialyzer with multiple PLTs

Shamelessly stolen from processone/ejabberd,
but don't forget that "imitation is the sincerest form of flattery."
Unfold export list
Make Dialyzer happy

This includes:

- making sure specs in exml_event.erl actually agree with
  values returned from C code

- export a c_parser() opaque type which describes a NIF resource object
  (see http://www.erlang.org/doc/man/erl_nif.html#enif_make_resource),
  which in Erlang looks like a binary but isn't one

- bail out using erlang:nif_error/1,2 so dialyzer is happy about
  the -specs defined in Erlang

- catch badargs / not_loaded errors and return them as values
  to maintain unchanged exml_stream external API
  (actually exml_stream.erl functions expected values which could never be
  returned from exml_event.erl)

This should bump just the least significant version number
since no backwards incompatible changes are introduced.