Category.py script handles empty and redirect pages

This patch fixes three problems: First if the to-be-edited page is empty
it was skipped even when "-create" is set, because the actual content
("", an empty string) was never returned. The same problem was there
when the to-be-edited page is a redirect, but that doesn't fix all
problems there.

The second part only affects adding categories to redirect targets.
If the same fix is applied that "-redirect" actually returns the
target contents it still crash because it's unable to save the page.
This is due to the fact that it only checks if the currently edited
page is a redirect when it's loading the content but nowhere else.
The fix there is simply to change the Page instance from the redirect
page to the redirect target page (if "-redirect" is given) and skip it
otherwise.

And lastly when creating a page, it can't of course get the text
afterwards to show the difference. So the third part of that changeset
is using the cached content from the beginning to show the difference.

Bug: 69185
Bug: 69186
Change-Id: I4bfd4db128e8398df43f847cc3cbd8143088686d
Merge "Category.py script handles empty and redirect pages"