Refactoring of CodeWriterTest.
Adding CheckBoxProvider, and new test for CodeWriter. Refactoring of AbstractResourceProvider.
Refactoring of ResourceId, and ResourceType objects. Adding DefaultProvider to handle all other resources. Adding new tests to CodeWriter.