add lang support for drafts (#826 & #1107)

Add lang support to drafts, this can't be done in a very clean way as you can see in the code so either I rescan the file or take the `content, metadata, settings, source_path, context` from the article instance and copy it. But `Article.__init__()` does some manipulations on `metadata` for example so I decided to go for the former. It's not ideal but it works and should not affect the rendering so much as the number of drafts should never be very high in practice (let's hope).

There is a problem with the tests but those errors existed in `master` so I didn't try to fix them. The code I added should be PEP8 compliant but running `pep8` or `flake8` gave me **tons** of problems in every single files.

Fix #826
Fix #1107