Adds name, vendor ID and product ID for joysticks.

- Implemented on Windows, Mac OS and Linux.
- Adds sf::Joystick::Identification structure to hold
  name, vendor ID and product ID.
Implemented a more flexible blending system (fixes #298)
Merge pull request #528 from NoobsArePeople2/joystick

Adds name, manufacturer ID and product ID for joysticks.
Added CMake find module for udev library
Created branch for experimental blending mode API

See issue #298.
Based on branch 'new_blending_api' of github.com:tomgalvin594/SFML.
Adjust CMake module to provide correct deps on OSX

Module will now give the OpenGL framework as a dependency instead of the
nonexistent libGL.
Fixed compile error (trailing enum comma) and other minor things
Omitted "Blend" prefix for nested BlendMode enums

BlendMode::Factor instead of BlendMode::BlendFactor
BlendMode::Equation instead of BlendMode::BlendEquation
Improved formatting
Improved documentation
Passed BlendMode objects by const-reference
Image::flipVertically(), Image::flipHorizontally() optimizations.
Minor improvements in sf::Window and sf::RenderWindow documentation
Minor improvements in sf::Ftp documentation
Optimized sf::Listener with a cache

Two optimizations:
- Get functions return locally stored value
- Set functions call OpenAL only if value has changed
Exposed up vector in sf::Listener API

Closes #545
Output error message in SoundStream when bits are zero

Fixes #529
Made Ftp::sendCommand() public
Minor formatting
Improved Ftp::sendCommand() documentation