Convert code from CoffeeScript to JS

I'm opening this PR for discussion/review of the CoffeeScript -> JS conversion.

So far I've gone over each file and tidied up the code, removing unnecessary "mess" that CoffeeScript generated, and where appropriate used native functions/lo-dash. (Note: lo-dash use is actually limited, so there could be an argument for removing it altogether).

There's probably a lot more tidying that can be done, but for now it's a good base for further development.

Tests all pass (which have also been converted to JS), and manual testing also passes.

Over to you for your thoughts @makeusabrew.
@makeusabrew I think for the most part the current behaviour is right. I like the fact variables get overwritten. For example, in my example that I'm working on I've configured a container to "mount-from" a data container for logging. In dev, I remove this by specifying an empty array for "mount-from" and instead "mount" the logs to the local host for easier access.

Where I think a "merge" could have use is for environment variables. We could keep the current logic for the array that is used now, but also support the use of a key/value object. If an object exists in the container object and the group/group container object, we can instead merge them using _.assign like that we do above. That way it's BC with the old and new approach, and if you want to wipe out all existing values you just use an array.