Change texture cache key to keep str type of the filename so we don't get encoding issues in automatic encoding.
Make log_dir absolute path checking cross-platform
Add get_root_window method to App class

This comes in handy when the user needs the window instance without importing Window manually or using a Widget instance to call Widget.get_root_window.
Change strip to always default to False like it was in 1.8.
Merge pull request #2166 from matham/text-lastline

Use correct options to finish of markup layout
Doc fix: clearify that alias prop setter returns True to cause dispatch.
Copy observers list when dispatching to prevent observers from being eaten.
Add rebind option to Property to allow dynamic rebinding of properties in kv.
Implement dynamic rebinding of properties in .kv for properties that enable it.
Move rebind from Property to only those that implement it. Add docs.
Add nosetests for property rebind.
Move func def out of func for better performance.
Some optimizations.
Don't take max on empty line.
Set label texture to none for empty text.
When shortening plain label and even single word doesn't fit, shorten char by char from center.
When shortening markup label and even single word doesn't fit, shorten char by char from center.
When shortening, don't restrict width when laying out, otherwise single word might be split across lines, and when rejoined while shortening to single line a space would entered mid word when joining the lines.
Doc fix.
Don't change shorten_from when word is too long.