basic bidi support

Support bi-directional text using [pyfribidi](http://pyfribidi.sourceforge.net/) or [python-bidi](https://pypi.python.org/pypi/python-bidi), if available. This just handles bidi text, and does not do any reshaping (I tested with Hebrew).

bidi support is added to core `LabelBase` and exposed via properties in `Label` and `TextInput`, and should work with any widget subclassing those (I tested `Button` as well).

Also adds a config section `i18n` and setting `bidi`, which controls the default value for the core label setting.

This will help with #1619.
You might want to make it a underscored function name, so that it doesn't end up being a exported part of the module. Alternatively, you might want to do: `get_display_text = None` and just remove the `get_display_text = get_display_text_noop` part. Also, then you could do `text = get_display_text(text) if get_display_text is not None and options['bidi'] else text` saving yourself a function call, which is expensive, if it's not available.