Do not read file into memory on import + more import formats

* Don't everyhing into memory, but work line-by-line - huge performance improvement.
* Introduce file-format detection (doesn't work yet on Foodsoft/Borkenstein/BNN)
* Set encodings in the `File` instead of on the `CSV` object (incl. unit tests for importing some encodings)
* Add file formats for some Dutch suppliers.
* Start to try to get existing tests working.
* Add option to delete existing articles on upload (for suppliers that only send their full product list) (wrapped in the import transaction).

If anyone has example files for BNN and Borkenstein, that would be useful - as I haven't been able to test them.