Add entity class and interface

I can remove tests from the PR if they make it too big, but I think they may help show the entity methods in action.

The real focus of scrutiny on this PR really should be in the page class and the migration for the table setup.

1. Outstanding issue to figure out: How to enforce unique "route" names.
I'm a little confused about this and how it will be used. I do not know if the entity should handle the getting and setting of this data too, or if it should be handled separately in the operator classes instead (would need a add_page, edit_page and delete_page operator classes then).

I see this data only being needed in the ACP page where we add/edit Pages, and in the event listener where we generate all the necessary links and output them to phpbb.