0.2.3 dialyzer

This patch fixes most of the dialyzer errors that show with the 0.2.3 version this is left:

```
msgpack.erl:185: Guard test <<_:8,_:_*8>> =:= __X::{'error',{'badarg','atom'}} can never succeed
msgpack.erl:185: Fun application with arguments ({'error',{'badarg','atom'}}) will never return since it differs in the 1st argument from the success typing arguments: (<<_:8,_:_*8>>)
```

since I could not find how to get around this, but it's just in a test.