Page ranges work way better

Now you don't have to have every page in a codex accounted for, and
anything having to do with witnesses in a codex is handled via ajax.
The reason for this is a feature I can imagine coming in handy for
the students who will correct data where they can modify the page ranges
in witness_pages directly from the viewer page.