Return a Rubycritic::AST::EmptyNode when an Ruby file is empty

Otherwise Parser just returns nil, which blows up later on.

I must say, I don't like this code organization very much. I'm monkey
patching Parser::AST::Node and creating a new class,
Rubycritic::AST::EmptyNode, and placing them both in
`rubycritic/analysers/ast_node.rb`. I think these two classes should be
in the same file, but I'm not sure **where** that file should be placed.
For now, this will do.
Update Stats test to check that it can deal with empty Ruby files
Start testing Rubinius again :D
Specify Ruby 2.1 in Travis config

Since Ruby 2.1.0, the MRI versioning policy changed to follow Semantic
Versioning [1].

Thus, it is better to use '2.1' instead of '2.1.x' in Travis config
since this way the latest patch release will be selected automatically.

[1]:
https://www.ruby-lang.org/en/news/2013/12/21/ruby-version-policy-changes-with-2-1-0/
Fix tests

Changes include:

* Removing unnecessary `require`s

* Removing a `describe` block

* Defining Double classes in certain files. These tests passed because
by the time they ran, the necessary Double classes had already been
defined. These semi-broken tests were found by running every single file
separately, with the following command:

  find . -regextype sed -regex ".*test.rb" -exec ruby -I"lib:test" {} \;

  The quick fix was to define Double classes in the test that were
missing them. But the solution will involve creating a specific helper
file that defines this Double classe.
Make all analysers and adapters respond to the same method `run`
Reorganized analysers and adapters folders
Group specific test niceties in a new helper file

Now, instead of every single analyser test file defining/reopening a
double class, they just require a specific helper file that defines that
double class once.
Fix invalid HTML
Show smells' status in the Smells index page