Repository: sqlfluff/sqlfluff
Issue: Bug: Running "sqlfluff version" on a fresh install throws an error

I installed `sqlfluff` and ran the `version` and `lint` commands. Both failed, probably due to a missing configuration file. It would be good to report this error in a nicer way.

Here's the result I saw:
```
$ sqlfluff version
Traceback (most recent call last):
  File "/usr/local/pyenv/versions/3.7.3/bin/sqlfluff", line 11, in <module>
    load_entry_point('sqlfluff==0.2.1', 'console_scripts', 'sqlfluff')()
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/sqlfluff/cli/commands.py", line 82, in version
    c = get_config(**kwargs)
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/sqlfluff/cli/commands.py", line 55, in get_config
    return FluffConfig.from_root(overrides=overrides)
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/sqlfluff/config.py", line 283, in from_root
    return cls(configs=c, overrides=overrides)
  File "/usr/local/pyenv/versions/3.7.3/lib/python3.7/site-packages/sqlfluff/config.py", line 263, in __init__
    if self._configs['core']['rules']:
KeyError: 'rules'
```

Changed files:
src/sqlfluff/config.py

diff --git a/src/sqlfluff/config.py b/src/sqlfluff/config.py
index 0752ce05..db4c87b2 100644
--- a/src/sqlfluff/config.py
+++ b/src/sqlfluff/config.py
@@ -258,18 +258,18 @@ class FluffConfig(object):
             configs or {'core': {}},
             {'core': overrides or {}})
         # Some configs require special treatment
-        self._configs['core']['color'] = False if self._configs['core']['nocolor'] else None
+        self._configs['core']['color'] = False if self._configs['core'].get('nocolor', False) else None
         # Whitelists and blacklists
-        if self._configs['core']['rules']:
+        if self._configs['core'].get('rules', None):
             self._configs['core']['rule_whitelist'] = self._configs['core']['rules'].split(',')
         else:
             self._configs['core']['rule_whitelist'] = None
-        if self._configs['core']['exclude_rules']:
+        if self._configs['core'].get('exclude_rules', None):
             self._configs['core']['rule_blacklist'] = self._configs['core']['exclude_rules'].split(',')
         else:
             self._configs['core']['rule_blacklist'] = None
         # Configure Recursion
-        if self._configs['core']['recurse'] == 0:
+        if self._configs['core'].get('recurse', 0) == 0:
             self._configs['core']['recurse'] = True
         # Dialect and Template selection
         self._configs['core']['dialect_obj'] = dialect_selector(self._configs['core']['dialect'])