Pages: Pages inherit from base groups.

Group common functionality into base groups for Pages to inherit. As
part of this change, some functionality has been moved into macros too.
Pages: Split out common macros and base groups.

The common groups and macros have been moved to page_base.edc, and the
pages themselvevs are being kept in pages.edc.
Pages: Turn loading animation programs into macros
Pages: Turn background part into a macro.
PageManager: Give each Page a unique ID.

The unique ID is (so far) just used when removing a Page, so we don't
have to keep track of where a Page is if there are multiple copies of
the same Page.
Page: Make uid a private member.