Support encoding changing

I've used the great [`iconv-lite`](https://github.com/ashtuchkin/iconv-lite) library for recoding the read and written file content. This pull request should close #35 and open a way for implementing non-default encoding support in Atom.
Mind calling this `contents` instead of `content`, just to match the other variable names such as `cachedContents`