Fix crash while processing {a={1, 2, 3}}
Fix crash when trying to convert `{a=function() end}`
Set error when trying to convert non-convertible object
Always return nil if error was set
Add pops for errors
Correctly handle dictionaries with non-string keys

Out-of-bounds array write may have happened otherwise.
Make generated functions compile without errors

Lots of warning about unused functions though. This is expected.