Refactor perceptron initialisation arguments

Make use of this PerceptronArgs object we had waiting in the wings
Infrastructure to build API documentation
Ignore Sphinx-generated artefacts
Initial sphinx-apidoc generated doc modules