core:Factory raise AttributeError if trying to access attributes like `bind`

Sample test app that reproduces the issue.(python3)

```
from kivy.app import App
from kivy.lang import Builder

class MainClass(App):

    def build(self):
        return Builder.load_string('''
#:import Factory kivy.factory.Factory
BoxLayout:
    orientation: 'vertical'
    Spinner:
        values: ('Heaven', 'world')
        option_cls: Factory.CustomOption
    TextInput:

<CustomOption@SpinnerOption>
    background_color: 1, 1, 0, 1
''')

if __name__ == '__main__':
    MainClass().run()
```

closes #1729 
closes #1277