Rewrote the Makefile as a Python script to make it cooler + hopefully more robust

Also reworked CONTRIBUTING.rst to reflect this change.

The resulting file is longer than the original Makefile but it'll actually check if you've got Pelican installed before it tries to make the `output` directory, so you won't get left with an empty `output` directory if you forget to run pip install.

I also have a feeling it will work on Windows. Haven't tested this though.

I am not too happy with having to add the WORKING_DIR to all the paths, but otherwise the behaviour changes based on whether you run `python build.py` from inside the `source` directory or `python source/build.py` from the root directory. This way both will work. 

I'm also not convinced by the `subprocess.call()` because I feel like Pelican, as a Python package, should be useable from inside a Python script. I just don't know how to call it.

Anyway, feel free not to incorporate this if you don't think it's a beneficial change. Mostly did it cos I was bored and wanted to learn about `distutils`.