linux-xshm: Improve source struct.

This adds documentation to the source struct and moves one bool to the
end to avoid a hole due to alignment.
linux-xshm: Use macro for logging.

This adds a macro to automatically prepend the plugin name to debug
statements like it is done in other plugins.
linux-xshm: Improve geometry update function.

This adds the screen id from the source properties to the source
struct and changes the geometry function to use that value instead
of requiring the settings object of the source.
linux-xshm: Small change for texture update function.

This removes the entering/leaving of the graphics context from this
function and requires the calling code to make sure the context is
present.
linux-xshm: Refactoring of setup code.

This moves the code to start/stop the capture to respectively named
function in order to clean up the update function.
This means that the capture is stopped/started whenever the settings are
changed. While this increases overhead for some settings, this will also
enable future settings that require a full restart of capture process.
linux-xshm: Add server property.

This adds a property to the source properties which lets the user
specify the X server to capture from. Since this is probably something
thats only useful under certain circumstances it is implemented as
an advanced setting which is only shown when the corresponding option
for advanced settings is checked.
linux-xshm: Handle missing screens.

This adds a check to the screen enumeration in order to handle missing
screens by adding them to the list but disabling them.
Merge pull request #303 from fryshorts/xshm-different-xserver

linux-xshm: Allow capturing from a different X server