Remove Iconv and use built-in encoding, more robust UTF-8 and encoding handling

This gets rid of the deprecated Iconv dependency (and breaks Ruby 1.8) using built in string encoding.

Fixes #23. As well as partly #22. Whether it helps with #71 remains to be seen.

Tested on Ruby 1.9.3.

This is a bit hacky, but all the UTF-8 stuff is. If there was a way to do this right, overall, I would like to see it. Still requires everything that does something with strings to #fix_encoding them.

Should not necessarily be backported.