Refactor Generator

Includes:
- Fixed typing bugs.
- Moved FacesBuilder and TagBuilder into separate packages.
- Added FacesComponent, FacesAttribute, and TagComponent so that project specific code can be separated.
- Added Initialize method (which takes an Element) to model classes so that initialization code is in the same place as getters and setters. This makes it simpler to add new flags/members to model classes.
- Changed Faces templates.
- Made Faces specific changes.