Fix a bug decoding pointer-valued maps

Decoding into a map with pointer values causes a runtime panic. I've added a test to demonstrate this (the NamedObject map) as well as test other pointer-valued things (which seem to check out ok).

The patch is fairly straightforward. It requires sidestepping the `indirect()` function which throws away type information by recursively following pointers.

This is my first foray into TOML and this package. I ran into the bug immediately upon use. So forgive me if I've done something silly.