A classic case of the win described by
https://build123d.readthedocs.io/en/latest/algebra_performance.html
Before, these test cases took 1.26s and 0.28s, making them the slowest
and 8th-slowest test cases in the entire repo according to `py.test
--durations=10`, and a full pytest run takes 12.31s.
After, these test cases both take 0.09s, and a full run takes 10.90s.
Also added `prof/` to `.gitignore` because using pytest's
`--profile{-svg}` options creates this directory but it is unlikely to
be usefully tracked by git.
Also fix SlotOverall so that passing it equal height and width doesn't
error out and instead reduces to a Circle. (bug discovered while
writing the new test case).
Also added documentation for the new facility as well as a nascent
CONTRIBUTING.md to collect pointers to the tools used by developers of
this project.