Fix FreeRDP Issue #661.

Check directory operations in rdpdr to determine if the directory should be created if it does not exist - instead of always just creating a directory regardless.
Issue #684.

Fix the problem with a smart card reader being lost when a smart card is removed during a reconnected Windows 2008r2 rdp session. This was due to a improper handling of a message with a duplicate completionID. There is a lengthy comment in the code with explicit details. Also, many minor updates for the code to more closely reflect the protocol documentation - such as correcting packet lengths, undocumented padding, etc.
Merge remote branch 'upstream/master'
#574: fix for timezone redirection east of UTC; add more timezone synonyms
Refine the extension loading code.

The extension loading code is fixed by commit
48ad5feb0a6ad831d863f89ed74b443021e54303

However, it looks weird that the extension is not initialized in rdp_new().
So we split the load/init steps out of new step. Thus to achieve the
same result that 48ad5feb0a6ad831d863f89ed74b443021e54303 des.

Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@canonical.com>
Merge pull request #685 from dpoe/master

Fix for #574: Timezone redirection
Merge pull request #686 from grandpaul/refine-ext

Refine the extension loading code.
Merge pull request #683 from bjcollins/master

Issue #661: Fix rdpdr directory "open only" operation to no longer create directory
Merge remote branch 'upstream/master'
Add missing config.h to types.h

Without config.h the various HAVE_* macros are not used properly and
this causes a compilation error on OSX Mountain Lion.
Merge pull request #687 from mikemcquaid/master

Add missing config.h to types.h
Multiple RAIL fixes/improvements

1. Linked Window Manager Maximize/Minimize and Restore operations to those from the Server Rail Window so that they are in sync

2. Enable things like "CTRL-ALT-DELETE" and "WindowsKey-L" to show the full desktop window again since the desktop is not actively monitored since
this was still trying to draw to the rail window without updating the size of the window to accomodate the full workspace area.

3. Changed local window coordinates to be based on the visibileOffsetX/Y- while moving server window based on WindowOffsetX/Y. I have seen various issues regarding this when trying to use a maximized window where this is a disconnect between local window coordinates and remote window coordinates. This change clears these things up.

4. Commented the XShapeCombineRectangles calls - this can cause issues where the entire window is not visible and it does not currently play well with the changes from #3. The gain here is greater than the loss.

5. Draw the initial workspace correctly when running across multiple monitors. The correct size was always used, but the window was only starting on the current monitor and thus could draw the window off of the viewable area.

Known Issues:

Although the changes for #2 worked well in the stable branch that I developed from - the desktop window shown once the rail windows are destroyed does not respond to input unless I minimize/restore the window. Once the window starts responding to input - you can hit cancel to close the desktop window and return to your rail windows again(or launch task manager, etc.). This is still a big step in the right direction as xfreerdp is now correctly acting when the rail server stops Actively Monitoring the desktop.

XShapeCombineRectangles needs to be revisited, most windows applications will give you a rectangular window anyways.
Merge pull request #688 from bjcollins/master

Rail fixes/improvements