Extract some helper code in Serializer into its own file

I want to use this logic in another place
Add SuiteMarker reporter

It will be used to make it easier to write reporters that print stuff
when a suite starts or finishes.
Improve SuiteMarker tests a bit
Categorize tests in the SuiteMarker suite
Fix bug regarding suiteStart in SuiteMarker
Fix another suiteStart bug in SuiteMarker
Simplify the SpecProgress reporter by using SuiteMarker
Add skipped field to start message

This information is known already and it will help writing the TeamCity
reporter. The drawback is that it makes it tricky or impossible for the suite
runner to change its mind about if a test is skipped on-the-fly, but that is
arguably a good thing.
Fix duplicate test
Fix the BDD's interface duplication checks

Serializer REALLY doesn't like duplicates
Don't print anonymous top level suite names in the spec progress reporter

It's undefined so it actually prints undefined
Add TeamCity reporter
Fix linter errors
Merge pull request #42 from pereckerdal/teamcity-reporter

Add TeamCity reporter