Add features for factions and style names.

- Add per-faction character lists and link to them from factions index.
- Add "type" property for factions (possible values are "dynasty", "kingdom", and the catch-all "faction".
- Add style names for characters.
- Refactor Python code so all access to raw data is mediated through the api module.
- Add to_json() functions for Faction and Person.
Add faction links for characters on coappearance pages.