Milestone: Automatic Accesibility (A11Y) testing

We use `pa11y-ci` to run our accesibility testing on all GNU social
pages. The process of setting this up was a bit of a ride, but the
results are quite useful:

![Accesibility report generated by Pa11y](assets/a11y/report.png)

We also take screenshots of all pages and compare them with the
previous, allowing us to spot (possibly) unintended changes in the UI.

The way we do this is by using a `docker` image derived from `node`,
with `pa11y-ci` installed, which doesn't have an entrypoint. This then
allows us to spin up a webserver, PHP and Redis containers, mimiking a
staging environment. `pa11y-ci` uses a JSON config file to tell it
what to do, and handles visiting all pages with the given resolution,
logging in and registering any accesibility violations found.

![Accesibility violations found by Pa11y](assets/a11y/violations.png)

Note that most of these errors are actually the same.

The saved screenshots are then used to detect changes, with
ImageMagik's `compare`, to generate a report on visual changes.

![Screenshot comparisons](assets/a11y/compare.png)

We were already striving for making GNU social accesible, which is
clear from the really low number of violations found, but there's
always room for improvement :)


