Added window methods to request and to check focus on Linux

This is the Linux part for a fix for #518
Fixed potential memory leak in sf::Font
Added documentation note on coordinates and undistorted rendering
Added String::replace() methods

Based on pull request #355 from abodelot
Updated copyright year to 2014
Fixed typo in Windows keyboard implementation

Fixes #516
Added String::substring() method

Based on pull request #355 from abodelot
Fixed forgotten members in sf::Font::operator=
Removed unnecessary null pointer checks in Window.cpp

Fixes #532
Avoided unnecessary toLower string conversions
Changed tabs to spaces in various files
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)
Added CMake find module for udev library
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