[WNP][DNM] The Big Kahuna re-factoring

- Split responsibilties
- Clean-up invocation
- Use appropriate service registration
- Added PropertyRegistryTest and PredefinedPropertyAnnotatorTest
- Moved Exif handling in its own class
- Moved ShortUrl handling in its own class
Register User as DI object

Added _NREV test to show case how to use DBConnection injection
Add PHPUnit bootstrap file
Re-added '_MIMETYPE' and '_MEDIATYPE'
Address the getId being NULL issue

Relates to issue #12
Enable to use AsFixedTables

Introduce $sespUseAsFixedTables to enable the use of fixed
tables as each of the properties are high volume targets by being
potentially included for each page.

If $sespUseAsFixedTables = true then update.php + SMW_refresh.php needs
to be executed.
Add StoreIntegrationTest

This only verifies that the invoked hook works in accordance within
its specification.
Some clean-up
Mitigate differences found in the git.wikimedia.org version
Use a json file to host property definitions
Beautify ExifDataAnnotator
Merge pull request #10 from SemanticMediaWiki/big-kahuna

The Big Kahuna re-factoring