Major updates

1. Updated requirements.txt with newer version of packages. They prove to be stable.
2. Updated generate_certificates with easier to maintain code according to code review feedback. Notes taken.
3. Minor PEP8 fixes
4. Removed an unnecessary tearDown as IvayloBachvaroff did in 09c2ededf426b0c4049a6468af5e6c52bb0b481c , but kept usage of unittest.TestCase. Usage of Django's TestCase when tests don't need a database is a bad practice. It slows down tests and it's completely unneeded for us to check if Django runs a validator on model fields. It's Django devs' responsibility to test that and it's actually tested and it works. No need for us to repeat their tests