Allow non-standard files structures

Locales are able to specify a directory in which their test file exists.
They may also specify additional files that should be sent besides the
test file.
Replace additional fields on Locale with subclass
Merge pull request #937 from sgrif/sg-allow-non-standard-file-structures

Allow non-standard files structures for locales
Refactor sinatra test logins
Simplify services test setup
Untangle hibernation from muting
Untangle test helper dependencies.

We do not need to require active record in all the tests.
Delete leftover code
Refactor unsubmit tests
Tweak hibernation email
Implement hibernation rake task
add erlang trinary assignment (first erlang assignment)

- skipped all tests except first
- add makefile w/ test runner for erlang trinary assignment
- ignore erlang beam files
First attempt at hyperlinking mentions inline (see #877).

I'm doing the hyperlinking by parsing the generated Markdown HTML
into a DOM tree using Nokogiri, and then modifying the DOM tree in-place
by finding text nodes containing mentions, ignoring everything in
code blocks. The DOM is then re-serialized to HTML and returned by the
Markdown renderer in `lib/exercism/markdown.rb`.

This is the only way I know of doing the hyperlinking that both gives
us control over where the hyperlinking occurs, as well as preventing
XSS vulnerabilities from creeping into our code. I also looked into the
Redcarpet API, but it didn't seem to give us the same flexibility.

Because of the extra re-serialization that occurs during the post-processing
of the rendered Markdown, HTML output isn't *exactly* the same as it
was before, though it still has the same basic DOM structure. See the
change in the expected output of the `test_newlines` test in `MarkdownTest`
for an example of this.

I'm guessing that since the rendering now effectively enumerates all
the mentions, we might want to have it return some kind of object
containing both the rendered HTML as well as the list of mentions,
obviating the need for the `ExtractsMentionsFromMarkdown` class.

Things that still need to be done:

  * Right now we don't ensure that there are only spaces/punctuation
    around the mention, meaning e.g. our code would think `hi@toolness.com`
    contains a mention of `@toolness`. However, I *think* the
    `ExtractsMentionsFromMarkdown` class has the same limitation
    (not sure though).
  * A class `mention` is given to the hyperlink but it's not actually
    given any special display via CSS.
  * The list of mentions are still enumerated after the comment, but
    should be removed as per the discussion in #877.
  * Probably other stuff I'm forgetting about!

Also, as I am a complete Ruby noob, the code I've added here is almost
certainly terrible.
Merge pull request #941 from toolness/hyperlink-mentions-inline-rebased

Rebased attempt at hyperlinking mentions inline.
Merge pull request #938 from wilmoore/erlang-trinary-assignment

Erlang trinary assignment
Initial version of bob assignment.
All tests passing.
Take one down -> Take it down according to the instructions
Rename beer_song.erl to example.erl to match exercism format
 Remove unintended module name refactor in code