Ignore synthetic fields in ConfigSerializer

We may get an error if we use reflection on synthectic fields,
which is compiler-created for some reasons. For example,
using eclEmma (a code coverage tool), most of tests will fail.
Therefore, when scanning the fields of configuration objects,
we should skip these synthetic fields.
Add predefined Type instances, and polish tests

This commit introduces some predefined constant instances of class Type
(e.g. INT_TYPE, INT_ARRAY_TYPE, ...), so that redundant codes such as
`new Type(INT, 0)` can be suppressed. We now have much simpler test codes.
Refactor HTMLRenderer and add tests on grid behavior

This commit adds test cases of HTMLRenderer and the 'grid' option
which were introcued in #70. And codes are refactored a little.
Refactor StringUtilRenderer and add tests

This commit adds test cases of StringUtilRenderer - especially behaviors
of filters such as lower, abbr, contestcategory, etc.
Moreover, the class StringUtilRenderer was refactored to be organized better.
Merge pull request #87 from wookayin/refactor-test

Refactor and Add tests in general
Allow customization of backup file name, folder and limit.
Merge pull request #88 from vexorian/backupname

Backup configuration
Move Contest Category from StringUtil to own renderer.
Update tests after moving ContestCategory out of StringUtil.
Merge pull request #95 from vexorian/contestcategory

Move Contest Category from StringUtil to own renderer.
Merge remote-tracking branch 'upstream/master' into multitest
Make multiprocess an option in cpp.tmpl template.