lib: add convert/write/end encoding argument

The versions of Iconv#convert(), Iconv#write() and Iconv#end() that
take a string as their first argument, now accept an optional second
encoding argument that defaults to 'utf8'.  When specified, the input
string is converted to a buffer using the given encoding.

'encoding' in this context means node.js buffer encodings ('base64',
'hex', etc.), not the full gamut of node-iconv encodings.

Fixes #76.