Allow method calls for keys ending with question-mark

If I create a settings file containing  a key ending with a question mark, eg:
```
foo?: true
```

- ```Settings.foo?``` returns ```false``` because it's assuming we're checking if a key with them ```foo``` exists.
- ```Settings[:foo?]``` correctly returns ```true```, the value corresponding to the key ```foo?``` 

```Settings.foo?``` should return the key value corresponding to the key ```foo?``` in the same way ```Settings[:foo?]``` does.
This breaks when the key is present but the value is `nil`. Let's use this instead: `has?(name) ? self[name] : has?(key)`