.gitignore: Sort lines alphabetically
Makefile: Cleanup line length
Makefile: Cleanup PHONY lines

So that the camera-related stuff is grouped together, much like in the
main body of the makefile.
Makefile: Don't update API docs in README.rst during packaging

Summary: Stb-tester core developers now need to run `make
update-api-docs` to update README.rst after changing or adding public
API docstrings.

--

stbt's Python API docs in README.rst are checked in to the repository;
they need to be updated (and committed) whenever public APIs change or
new ones are added. The man page is generated from README.rst.

Previously README.rst was updated automatically when running `make` or
`make install`. This can cause problems when building the packages for
Fedora or Ubuntu. Because the source python file's timestamp might be
newer than README.rst (even if README.rst was fully up to date --
perhaps the most recent change to the python source file didn't affect
any public APIs), running `make` (as part of the packaging process)
would run the recipe to update README.rst, which runs pydoc, which
imports the stbt python files, which fails if run-time dependencies
aren't installed. The end result is that the API documentation
disappears from the man page.

We want to be able to build the packages without installing stbt's
run-time dependencies. Also the `api-doc.sh` script is very fragile
(I want to replace it with something like Sphinx at some point) and it
doesn't report failures, so I don't want it to be run automatically in
places where no one is checking the result.

With this change, the man page produced by the Ubuntu Launchpad and
Fedora COPR binary package build infrastructure will exactly match the
README.rst that we provide as input to that build process.

Updating the README.rst is the responsibility of the stb-tester
developers (as it always was). The difference is that now you have to
run `make update-api-docs` instead of `make doc`.

To make sure we don't forget, I've added a self-test that ensures `make
update-api-docs` doesn't change README.rst. This new test covers
everything tested by the existing selftests in `test-make-doc.sh` so
I've removed them.
fedora packaging: Fix specfile for stb-tester-camera

* Since 99aefc45, stbt-camera support has to be enabled explicitly at
  build time.
* Some of the camera files were going into the wrong package.
* stb-tester-camera requires stb-tester.
fedora packaging: Install `make` in package-building container

Otherwise the build doesn't work at all! Presumably I introduced this
problem in 7a43b82c.
fedora packaging: Remove standard build dependency (gcc) from spec file

As per https://fedoraproject.org/wiki/Packaging:Guidelines?#Exceptions_2
fedora packaging: Scripts to build packages in a docker container

For instructions see extra/fedora/README.md. If you have a fedora system
you can follow the same instructions, but run the `make` commands
directly, not via `fedora-shell.sh`.

I don't have Fedora installed natively on my development PC, so to build
& test Fedora packages I need a Fedora environment. We had a Dockerfile
already, but the actual building and publishing of the packages wasn't
fully automated. We had "test-packaging.sh", but that script didn't
actually produce any packages as build artifacts. We had "make srpm",
but that doesn't automatically spin up a Fedora container.

Now you just run `make srpm`, or if you don't have Fedora on your host
system, `extra/fedora/fedora-shell.sh -c "make srpm"`. The test
script (renamed from test-packaging.sh to test-rpm.sh) now takes the rpm
file as an argument, so it can test the same srpm that you intend to
publish, rather than building its own srpm from scratch. It installs the
rpm in a fresh fedora:20 container (even if you're running Fedora on
your host system; this is to make sure that all dependencies are
correctly specified).

Implementation notes: We try to take advantage of docker's caching so
that we don't fetch our dependencies every time. Furthermore we install
the core build dependencies (gcc, make, etc) in a separate "RUN" command
in the dockerfile, so that we don't have to re-download them if we're
changing the build requirements specified in the spec file.
fedora packaging: Don't install rpmfusion in docker container

This allows me to test that you can still install stb-tester if you
haven't added the rpmfusion repositories (you have to install it
manually if you want to use GStreamer H.264 elements in your stb-tester
source pipeline, but that's a configuration issue that's only relevant
for people using an H.264 video-capture device, so it shouldn't stop
stb-tester from being installable).
Merge branch 'fedora-packaging-fixes'

* fedora-packaging-fixes:
  fedora packaging: Don't install rpmfusion in docker container
  fedora packaging: Scripts to build packages in a docker container
  fedora packaging: Remove standard build dependency (gcc) from spec file
  fedora packaging: Install `make` in package-building container
  fedora packaging: Fix specfile for stb-tester-camera
  Makefile: Don't update API docs in README.rst during packaging
  Makefile: Cleanup PHONY lines
  Makefile: Cleanup line length
  .gitignore: Sort lines alphabetically