Removed the concept of upgrading attributes.

This has not been used so far and upgrading can still be simulated by
registering a new component with a different name (e.g. location2) and
updateing all entities in the world. If this becomes common, we can still
write a new method in the Core that will automate this.
Added component deps into IPluginInitializer, started adapting plugins
Added a new test plugin with component dependencies and a respective test
Improved debug message.

Loading didn't not necessarily fail, but may have been deferred until some
other plugin loads required dependency - either component or a plugin.
Moved out component dependendencies from the Avatar plugin
Renamed properties in IPluginInitializer
Renamed file to match class name
Separated out component deps from the plugin deps. Also fixed some deps.
Added constructors with guid in ComponentDefinition and AttributeDefinition
Implemented component definition sync in Scalability plugin. Not tested.
Corrected warnings on Linux
Restored constructor for ReadOnlyAttributeDefinition needed by Persistance
Decreased the importance of the message about deferred plugins
Removed custom version of Json.NET as we now use the one from nuGet
Downgraded Json.NET to 4.5.11 as version 5.0.8 is not compatible with Mono
Plugin manager should only look for *.dll files in the plugin directory
Marked persistence-specific changes in ECA, refactored code a little
Fixed bug: AttributeChanged handlers were invoked twice with Persistence
Merge branch 'component_dependencies' into develop
Corrected project ValidPlugin3 to correctly copy binaries on Linux