Add support for void[0] types.

I had to make a new pull to replace pull #3.

It is significantly simplified now, instead of hardcoding hash support everywhere I've simply implemented `pack`, `unpack` and `as` for void[0] type. So now this will automatically work for hashes which have `void[0]` as value type.