Sort obs_data_items by name

This allows for easier comparison between two obs_data_t and it will make

const char *json1 = obs_data_get_json(data);
obs_data_t *data_ = obs_data_create_from_json(json1);
const char *json2 = obs_data_get_json(data_);

produce the same string in json1 and json2
(API Change) Pass data to get_properties when possible
Remove destructor from OBSPropertiesView
Move properties loading to OBSPropertiesView
Add 'update_properties' signal and obs_source_update_properties call

obs_source_update_properties should be called by sources when property
values change, e.g. a capture device source would use this when it
detects a new capture device (in case its properties contain a list of
available capture devices or similar)
Handle 'update_properties' signal in window-basic-properties
Implement 'update_properties' for mac-avcapture
Add syphon plugin