Remove unnecessary numpy usage.

These simple loops can be achieved in pure Python and numpy doesn't
really create any benefit here.
Remove unnecessary calculations.

x_slice and y_slice are only used to find the one process's cpux and
cpuy. That can be done with a simple calculation just like in the
non-MPI case.
Optimize numpy usage a bit.

* Don't use zip() because that converts from a numpy array to a regular
  Python list. And then we convert back to a numpy array anyway.
* Don't use numpy.append(). It's better to pre-allocate the entire array
  to its final size first.
Add license text.

The full text should be distributed and not just the header added to
source files.
Remove generated files that shouldn't be in VCS.
Update gitignore file.
doc: Remove pdfsync package from documentation.

All TeX processors support SyncTeX and pdfsync is super outdated.
doc: Replace deprecated subfigure package.

Similar functionality is provided by the subcaption package, which is a
part of the caption package.
doc: Use TitleCase instead of ugly ALLCAPS.
doc: Use geometry package to set page size.
doc: Set input as utf8, not latin9, whatever that is.
doc: Add macros for easy styling of program names.
doc: Remove unnecessarily forced newlines.
doc: Use braces to simplify font size changes.
doc: Use listings package more effectively.

Essentially, it provides a verbatim environment, which greatly reduces
the amount of escaping that needs to be done. Plus, one can make fancy
boxes around code and stuff.
doc: Use hyperref's autoref macro for better links.
doc: Tweak figure layout and some text formatting.
doc: Use description lists where possible.
doc: Remove old hyperref settings.
doc: Fix some bbox warnings.