Repository: kivy/kivy

Issue:
Config default_font is either not working or is incorrectly documented

### Versions

* Python: 3.6.6
* OS: Ubuntu 18.04
* Kivy: v1.11.0.dev0, git-1828af3, 20180623
* Kivy installation method: manual

### Description

Trying to set the `default_font`, but doing it according to the documentation (https://kivy.org/doc/master/api-kivy.config.html) the `default_font` configuration is in the `graphics` section and changing this has no effect.

According to comments in `config.py` from kivy 1.10.0:
.. versionchanged:: 1.10.0
    `min_state_time`  and `allow_screensaver` have been added
    to the `graphics` section.
    `kivy_clock` has been added to the kivy section.
    `default_font` has beed added to the kivy section.

Using this information and changing the `default_font` in the `kivy` section actually does change the default font.

The code should be corrected to make both `default_font` items in `Configuration` to be equivalent (changes to either should change both).
Documentation should be corrected to add a deprecation notice for the `default_font` in the `graphics` section and to document the `default_font` in the `kivy` section.

### Code and Logs

```python
import os.path
import kivy
from kivy.config import Config
font_file = os.path.join(kivy.kivy_data_dir, 'fonts', 'DejaVuSans.ttf')

# uncomment one of these next two statements
Config.set('kivy', 'default_font', ['DejaVuSans', font_file, font_file, font_file, font_file])      # changes the default_font
# Config.set('graphics', 'default_font', ['DejaVuSans', font_file, font_file, font_file, font_file])   # has no effect

from kivy.app import App
from kivy.uix.button import Button


class default_font_bug_App(App):
    def build(self):
        return(Button(text='What font is this?', font_size=50, on_press=self.show_font))

    def show_font(self, button):
        print('button font = ' + button.font_name)

if __name__=='__main__':
    default_font_bug_App().run()
```
Running this code and pressing the `Button` will print the `font_name` for the `Button`. There are two `Config.set()` statements in the code. The first works, but does not follow the documentation. The second follows the documentation, but does nothing.


Discussion:

Resolving patch:
diff --git a/kivy/config.py b/kivy/config.py
--- a/kivy/config.py
+++ b/kivy/config.py
@@ -86,6 +86,11 @@
 
 :kivy:
 
+    `default_font`: list
+        Default fonts used for widgets displaying any text. It defaults to
+        ['Roboto', 'data/fonts/Roboto-Regular.ttf',
+        'data/fonts/Roboto-Italic.ttf', 'data/fonts/Roboto-Bold.ttf',
+        'data/fonts/Roboto-BoldItalic.ttf'].
     `desktop`: int, 0 or 1
         This option controls desktop OS specific features, such as enabling
         drag-able scroll-bar in scroll views, disabling of bubbles in
@@ -109,6 +114,8 @@
         * 'systemanddock' - virtual docked keyboard plus input from real
           keyboard.
         * 'systemandmulti' - analogous.
+    `kivy_clock`: one of `default`, `interrupt`, `free_all`, `free_only`
+        The clock type to use with kivy. See :mod:`kivy.clock`.
     `log_dir`: string
         Path of log directory.
     `log_enable`: int, 0 or 1
@@ -228,15 +235,6 @@
         :class:`~kivy.uix.behaviors.buttonbehavior.ButtonBehavior` to
         make sure they display their current visual state for the given
         time.
-    `kivy_clock`: one of `default`, `interrupt`, `free_all`, `free_only`
-        The clock type to use with kivy. See :mod:`kivy.clock`.
-
-    `default_font`: list
-        Default fonts used for widgets displaying any text. It defaults to
-        ['Roboto', 'data/fonts/Roboto-Regular.ttf',
-        'data/fonts/Roboto-Italic.ttf', 'data/fonts/Roboto-Bold.ttf',
-        'data/fonts/Roboto-BoldItalic.ttf'].
-
     `allow_screensaver`: int, one of 0 or 1, defaults to 1
         Allow the device to show a screen saver, or to go to sleep
         on mobile devices. Only works for the sdl2 window provider.


Test patch: