uix: BoxLayout and GridLayout honour size_hint for a single child

Handling of size_hint when there is only a single child is not consistent between layouts.
BoxLayout and GridLayout don't seem to honour size_hint when dealing with only a single child.

To reproduce run the following code

```
# -*- coding: utf-8 -*-
import kivy
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder

root=Builder.load_string(
'''
TabbedPanel:
    do_default_tab: False
    TabbedPanelItem:
        text: 'BoxLayout'
        BoxLayout:
            Button:
                size_hint: .5, .5
    TabbedPanelItem:
        text: 'FloatLayout'
        FloatLayout:
            Button:
                size_hint: .5, .5
    TabbedPanelItem:
        text: 'RelativeLayout'
        RelativeLayout:
            Button:
                size_hint: .5, .5
    TabbedPanelItem:
        text: 'GridLayout'
        GridLayout:
            cols: 1
            Button:
                size_hint: .5, .5
    TabbedPanelItem:
        text: 'StackLayout'
        StackLayout:
            Button:
                size_hint: .5, .5
''')

class MyApp(App):

    def build(self):
        return root


if __name__ == '__main__':
    MyApp().run()
```