Fix occasional crashes in tab element's destructor

The crashes were caused by attempts to free an already freed parent "tabset" element which it still had attached as an event listener. The change fixes the issue by accounting for listeners in reference counting for tab elements.
Fix toggling of :active pseudoclass on elements

Only toggle :active pseudoclass on left mouse button clicks, ignore other mouse button clicks
Fix GetTableRelativeIndex() returning wrong index for datagrid rows

Relative indices weren't marked as dirty upon addition or removal of children elements.
Bugfix: it was possible to focus invisible elements using TAB

Avoid focusing invisible elements by early exiting ElementDocument::SearchFocusSubtree in such cases
Feature: add "rowchange" event

Datagrid now dispatches "rowchange" event upon the NotifyRowChange call. Event parameters are the same as for "rowadd" and "rowremove" events.
Feature: single-line text input controls now also dispatch boolean "linebreak" attribute with "change" events.

We can't listen to "keydown" events on text widgets since they are inhibited by input elements themselves. To properly detect changes caused by linebreak key (ENTER) presses, dispatch "linebreak" attribute with "change" events.
Merge pull request #63 from viciious/warsow10_features

Warsow 1.0 features
Merge pull request #62 from viciious/warsow10_bugfixes

Warsow 1.0 bugfixes
Adding tutorials back to libRocket samples

This initial commit returns the tutorials back to the source tree and
updates the CMake build to generate appropriate Make targets.

The next step in the process is replacing the 'EMP' references with
'Rocket' and testing the tutorials.
Updating all tutorials to be compatible with the latest Rocket bits

Updated each of the tutorials in the following ways:

- Fixed the path parameter in the Shell::Initialise call in each
tutorial's main.cpp
- Removed PNG files as the Shell render interface only supports TGA
files. Updated references to these PNG files (inline RCSS in the RML
files, or in RCSS files themselves) to reference TGAs in the assets
folder. Copied some assets from the Invaders sample to the Sample
assets where there were missing TGA equivalents.
- Replaced references to EMP namespace with Rocket namespace
- Replaced EMP_* macros with ROCKET_* macros (e.g. ROCKET_UNUSED,
ROCKET_ASSERT)
- Replaced Rocket::Core::DataSource references with
Rocket::Controls::DataSource
- Replaced EMP includes with Rocket includes
Fixed bug in datagrid tutorial:
The image for the Defender icons in the scoreboard was still pointing to the old PNG (which no longer exists).
Removing additional references to EMP

Missed some references to EMP from build mechanisms that I hadn't been
using (relied only on the CMake-based build for the tutorials).

I removed the references to EMPCore in these build files (which,
fortunately, already check for RocketCore as a replacement) and also
updated a couple of references to EMP_PLATFORM_WIN32 in the tutorials'
macros.
created a set of Visual Studio 2012 project files

copied the vs2010 project files and ran the project upgrade tool on them to produce these
updated ignore lists

added file type ignore rules for files generates per user/solution, and
all contents if the bin directory
Added "in", "cm", "mm", "pt" and "pc" units.

New units are based on a new RenderInterface::GetPixelsPerInch() method.
Property -> string converter appends new units.
corrected line endings
Merge pull request #68 from awahlig/master

Support for "in", "cm", "mm", "pt" and "pc" units.
Merge pull request #65 from blunted2night/master

Visual Studio 2012 project files
Merge pull request #64 from noam-c/master

Reintroduce tutorial samples to libRocket source tree