Added file encoding support

Hey there

I've redone the file encoding support and tested it several times. Its now using the autodetection based on chardet.

### How does it work:
#### New Ini Setting:
fallbackEncoding (if the autodetection fails, this setting is used)
#### New Option:
editor.encoding (Overrides the autodetection functionality. Useful when you manually want to open files in specific encodings)
Use `var chardet = Promise.promisifyAll(require('chardet'));` instead here.