Strip UTF-8 BOM when running under Ruby 1.8.

Fixes #427
Hide "Fires" section when empty :fires array.

When ever a method-call is detected inside a method, this results
in :fires field being created with possibly zero elements in it -
but the #to_html of Tag::Fires didn't account for it.

Fixes #428
Cosmetic margin fix for categories page

When the browser is narrow the floated columns all align left but with different margins. They should all have the same left margin so it looks consistent at any width.
Merge pull request #433 from bmoeskau/patch-1

Cosmetic margin fix for categories page
Remove the left margins of categories columns.

An improvement over the previous fix by Brian Moeskau.
Saving on the horizontal space by removing the left margings
altogether.
Only apply the UTF-8 BOM stripping in Ruby 1.8.

Something goes wrong when we execute this BOM-stripping code in
Ruby 1.8 which has encodings support.  Didn't care to digg into this,
and so I'm just limiting this fix to Ruby 1.8 where it's actually
needed.
Display "Nothing new" when no new items in this version.

Fixes #429
Generate docs for auto-generated setter parameter.

To avoid the no_doc_param warning.

Fixes #435
Remove extra dot from warning types docs.
Add tests for JsDuck::Logger.

Make the Logger testable by defining a LoggerCls and instantiating
it as global Logger - allowing us to instantiate the LoggerCls
separately in tests.

Test the enabling/disabling of warnings.
Extract Warnings class from Logger.

Test the warnings system through the Warnings class instead.
Switch Logger class back to the old system of including Util::Singleton.
Extract Process::NoDoc from Process::Lint.

Perform missing docs reporting in separate class.
New nodoc warning to replace no_doc* warnings.

The new nodoc takes parameters, but at the moment the parsing of
more than one parameter doesn't work yet.
New Log::WarningsParser class for parsing --warnings.
Move Warnings and NoDocWarning to JSDuck::Log namespace.
Rename JsDuck::Log namespace to JsDuck::Warning.
Refactor warnings system.

Create four warning classes to handle a particular set of warnings:

- Warning::Basic -- the usual warnings :tag, :link, :global, ...
- Warning::Nodoc -- the :nodoc warning type together with its
  parameters.
- Warnings::Deprecated -- the old :no_doc* warnings which delegate to
  the new :nodoc warning.
- Warning::All -- composite warning that allows enabling/disabling all
  warning types together.

Then inside Warning::Registry delegate #set and #enabled? calls to these
warnings.
Use custom WarnException in JsDuck::Warning::*.

This way when an actual error happens, we don't catch it with the
generic 'rescue Exception => e' block.
Merge the :nodoc warning and refactored warnings system.

Fixes #436
Up version to 5.2.0.