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 obs_get_default_rect_effect

This provides a default effect for users of GL_TEXTURE_RECTANGLE/textures
that return true for gs_texture_is_rect
libobs-d3d11: Don't depend on specific D3DCompiler

I do not want the D3D11 library to depend on a specific compiler
version.  This way, I do not have to distribute D3D Compiler libraries
with the program (proprietary binary blobs).  Any particular version
works because the API for the D3DCompiler function appears to be the
same; the only things that change are other features and additions
mostly (at least as far as I can tell).  Using any version available on
the system should be more than sufficient rather than depending on some
specific D3D compiler version.

If the user doesn't have it, a download of the latest D3D distributables
should be fine, though it should work with the ones that come with
windows 7+ as well.
mac-capture: Rename display_capture::draw_effect to …::effect
mac-capture: Use obs_get_default_rect_effect
libobs/util: Write 0 character when converting empty strings

Fixes log_windows_version logging garbage for build when running with
debug heap enabled (assuming osvi.szCSDVersion is an empty string)
Fix calculation of physical memory on linux systems

As stated in the sysinfo manpage the totalram field in the sysinfo
structure is in mem_unit sizes since Linux 2.3.23. To get the actual
memory in the system the totalram value has to be multiplied with the
mem_unit size.
Fix crash in obs_get_video_info when video_output_get_info returns NULL
Merge pull request #274 from reboot/fix_crash_on_video_init_error

Fix crash in obs_get_video_info when video_output_get_info returns NULL
libobs/media-io: Add more audio debug output
linux-pulseaudio: Use inline for small functions
linux-pulseaudio: Use interpolated system timing

Before it was giving timestamps based upon system time for each new
segment of audio data.  Also, it was subtracting pulse latency from the
audio timestamp, which seems like it was really meant for use with the
pulse audio time rather than system time.

Now, it just uses system time for timestamps.  Still might not be
totally perfect, but seems to be much better than it was.

This also removes the latency calculation.  Latency is no longer used
because we're not using pulseaudio timing.