Huge refactor: entire codebase in PEP8, imports alphabetized, bugfixes, core changes

I'd like an extra pair of eyes on this pull request before it gets merged. The testing suite and a few dry runs work just fine but there are not enough tests to cover every code path. 

This was meant to be a huge refactor (1K lines updated) but there were also quite a few bugfixes & core changes
that happened.

Some notable lines that have been changed:
A portion of this codebase was taken from `python-goose`, a python port of `goose` by Gravity Labs.
If you compare this line from `python-goose`: https://github.com/grangier/python-goose/blob/develop/goose/cleaners.py#L216
and this line from `goose` by gravity: https://github.com/GravityLabs/goose/blob/master/src/main/scala/com/gravity/goose/cleaners/DocumentCleaner.scala#L348

The line was ported over wrong, so our fix:
https://github.com/codelucas/newspaper/blob/huge-refactor-codelucas/newspaper/cleaners.py#L178

Also, a large chunk of `python-goose` was written in an unusual style where huge objects were being passed around everywhere instead of the properties of those objects which were used. This resulted in a very illegible codebase (It's still a great library).
Look at our changes, see how the cleaners, extractors, outputformatters now take explicit values and not `self`: https://github.com/codelucas/newspaper/blob/huge-refactor-codelucas/newspaper/article.py#L153

There were large and unnoticed bugs in newspaper prior to this PR.
If a language is not set via configs or inputs, newspaper will attempt to detect the language to use (from meta tags). This worked fine for all latin languages (en, fr, etc) because the `stopwords_class` did not need to be updated. However, for languages like Arabic or Chinese, this would fail. This has been fixed as well.

The codebase has been updated to fulfill PEP8 standards, imports have also been alphabetized for readability. There were also some other misc bugs laying around but that's not important. I didn't do a good job at all of splitting up my commits, this was rushed over the weekend sorry!

On the roadmap for newspaper:
- Adding publishing date extraction
- Talk of integrating ML into newspaper! Will post more about it soon
- More fucking unit tests, our testing suite sucks hard