Merge pull request #287 from eric-brechemier/gitignore

Add rule to ignore temporary vim files [ci skip]
Add steps needed to configure environment before running unit tests

It took me some time to figure out how to get a properly running environment.
I first had to understand what I needed (e.g. bundler, openssl support)
and then a simple way to install it.

The first issue that I encountered after installing bundler:
http://www.beginnerruby.com/rails-troubleshooting/fixing-opensslbundler-issue-for-rails-on-debian/

And then I had to reinstall ruby... I decided to go with the RVM approach,
which was simple enough as the installation provided feedback at different
steps to indicate how to remove conflicting packages previously installed
in Ubuntu and avoid potential errors.

There may be a need for an additional step to enable openssl support in ruby:
I did not run either `rvm pkg install openssl` before installing ruby with
rvm, neither did I provide the parameter --with-opensll-dir when installing
ruby with rvm `rvm install 1.9.3 --with-opensll-dir=$HOME/.rvm/usr` but I
assume that this was taken care of either by running `rvm install 1.9.3` or
`rvm requirements` which I have not included in these steps because it looked
from the console output like it was run by `rvm install 1.9.3` anyway.

Following discussion with Robin Dupret in the pull request, I improved
formatting and clarified the setup of the environment; I also added the
final steps with the aim of getting contributers to squash all commits
into a single one for each pull request.

I also replaced the link about topic branches; the previous link now
redirects to a generic page:
http://www.youtube.com/GitHubGuides

I replaced it with a link to "Topic Branches" subsection
in section "3.4 Git Branching - Branching Workflows"
in chapter "3. Git Branching" in the "Pro Git" book,
written by Scott Chacon.
Merge pull request #285 from eric-brechemier/contributing

Contributing: Add steps needed to configure environment before running unit tests [ci skip]
Cleanup in the code

Remove extra headers and functions from the code to have cleaner files
since some of them are a bit messy.
Install the tidy command on Travis

Our conformance test didn't run correctly since we hadn't installed the
tidy command. Also update the contribution guideline with the install
command for few operating systems.
Remove the squash step from the contribution guideline
Merge pull request #289 from vmg/tidy-command

Install the tidy command on Travis
Set the nesting level really high in the HTML renderer

If we don't initialize this really high, we don't generate IDs for
headers in the normal case.
use GitHub style titles for heading ids
Fix a compiler warning
Fix the compiler error
Condense the test for the header ids
Compress multiple spaces into one dash
Test a second level heading as well
Add a changelog entry for the GitHub anchors feature
Merge pull request #186 from vmg/github-style-titles

with_toc_data: GitHub style anchors
Move the changelog about footnotes to the top

This change is not part of the 3.0.0 release
[ci skip]
Ensure GitHub style anchors are also in TOC

Pull request #286 introduced GitHub style anchors but we forgot also to
generate these nice IDs in the tables of content.

Simply move the snippets about IDs generation to a function to avoid
code duplication and make output common if we need to output it
elsewhere.

Also remove the useless header_count entry from the toc_data struct
since we are not generating header's IDs through a counter.
Merge pull request #288 from vmg/cleanup

Cleanup in the code
Merge pull request #291 from vmg/html-toc-github-style

Ensure GitHub style anchors are also in TOC