Hm, I feel like it's a bit unfortunate that we need to have so many methods defined for accessing config values throughout MarkUs. Especially now that you've done a good job of eliminating any additional complexity, and moving everything to the config. Could we maybe substitute most of these for a single getter? It would have the added benefit of easily allowing user-defined config values without necessitating any additional copy-paste in `markus_configurator.rb`. Quick example:

```
def get_config_value(key)
  if !MARKUS_CONFIG.has_key?(key) || MARKUS_CONFIG[key].nil?
    raise NotDefined.new('key')
  else
    MARKUS_CONFIG[key]
  end
end
```

The disadvantage is that we can't use this module as documenting the available config options, but I'd argue that the config.yaml file does a pretty good job. One quick exception I noticed is the logic used for `markus_config_repository_external_submits_only?`, but that's something that we could easily fix by updating its only use. That is, in assignments_controller.rb, we'd just need to add `MarkusConfigurator.get_config_value('repository_type') == svn` to the boolean expression in that file:

```
@assignment.allow_web_submits =
        !MarkusConfigurator.markus_config_repository_external_submits_only?
```