Created PreferenceContentProvider

Created PreferenceContentProvider and tests.  Write will cause an onChange event to occur.

Fixes #3434

@devoncarew 
I don't think it's necessary to notify the controller here. I think the `onChange` Stream should be just for changes that happen outside the scope of the content provider (like, a file changes on disk).