Changes to allow new language definitions

- Added proper Languages module definition
- added internal storage for languages to Languages
- tests... actually removed some mocking becuse they caused
  false positives
- changed language check of supported_language to use internal storage
  in Languages.

These are changes needed to add more than one language. The way you were loading languages didn't work as well as you thought via the module. Adding a new language in a separate file would not be loaded into scope. If you want to go back to your original way of doing things, you'll have to move all language classes to inside the Boxci::Languages file, which is also a solution. Judging from how you had it, though, you want new languages to be defined in separate classes that extend Boxci::Language. 

I'm working on a JS language definition, but did not want these changes to be lost in that PR. Once this change has been merged (or an acceptable solution has been created), I will resume my work to add a Jsnode language definition. 
I'm trying to remember why. I believe that the existing model didn't work and this was my first attempt to make "languages" aware of all available languages. I was looking to pay the price of loading all available languages at startup and holding onto them instead of scanning through all of them each time we needed to translate the key. Make sense? Maybe not... It was a long time ago that I worked on this... Just trying to get this in so we can move forward.