fix : some user cannot use certain Freeseer tools that make use of setplaceholdertext(). Because their version of PyQt4 is too old.
 if hasattr(QtGui.QLineEdit(), 'setPlaceholderText'):
Merge pull request #296 from hosi-mo/fix/pyqt4.7.3_2

fix: Check for existence of setPlaceholderText was checking for exact version

- Fixed the check for Qt method setPlaceholderText() was checking if 
  the user had exactly python version 4.7.3, instead we are now
  checking the property exists.
Optimize how PluginManager loads it's decorators

- Set a change trigger to auto-save when config change is detected.
Remove unnecessary modules
Should use docstrings when possible
Support both interactive and shell modes
Closes GH-236 Create base Freeseer GUI App class to maximize code reuse

A FreeseerApp() base class has been created which handles languages
and the menu bar in Freeseer applications.

The following tools have been modified to use a common base class:

    - ConfigTool
    - RecordTool
    - TalkEditor
    - ReportEditor
    - FreeseerServer
GH-298 French Translation completeness
Update translations files with new strings
Update language translations and resource files
Closes GH-300 Translations don't seem to load for the Controller Client
Add classifiers to setup.py

- Also set the author to "Free and Open Source Software Learning Center"
Fix tabs
Remove unnecessary code
Closes GH-305 Merge Linux and Windows recording plugins

- Merged the Windows desktop plugin into the Linux one
- The new plugin is simply named Desktop Source
GH-209 Create plugins for Windows for recording from USB/Webcam

- Uses dshowvideosrc to record on Windows.
Closes GH-209 USB plugin auto-detect devices

- Devices are now auto-detected using GstPropertyProbe on both linux and
  Windows Systems.
GH-209 Probe for device on linux

- Seems probing for device-name on Linux does not work as expected
Add "credits" and "license" to CLI intro message
Update copyright range