Code logic for logger context initialization added

The logger context parses the configuration it receives when its
"initialize" function is called and creates/updates the corresponding
loggers, appenders and layouts.

Initialization throws an exception when the configuration references
unknown or invalid appenders or layouts.

The configuration structure follows that defined in log4j:
http://logging.apache.org/log4j/2.x/manual/configuration.html#Configuration_with_JSON
... but it also supports something simpler that does not stay so close
to the XML structure.

The following constructs are handled as well for instance:

[
  {
    "name": "com.joshfire.blah",
    "level": "warn"
    "appenders": [
      {
        "type": "console",
        "layout": {
          "type": "pattern",
          "pattern": "%m%n"
        }
      }
    ]
  }
]

or

{
  "appenders": [
    {
      "type": "console",
      "name": "stdout",
      "layout": {
        "type": "pattern",
        "pattern": "%m%n"
      }
    }
  ],
  "loggers": [
    {
      "name": "com.joshfire.blah",
      "level": "warn",
      "appenders": [
        "stdout"
      ]
    }
  ]
}
Added .gitignore file to ignore node_modules folder