Update the ObjectPath implementation to be spec compliant.

Added missing validation to our ObjectPath implementation to ensure that
we don't accidentally ever create invalid ObjectPaths. Also add a simple
csproj to allow MonoDevelop to build and run the unit tests.
[build] Update the csproj for the tests so it compiles.
Add xdb.il/xdb.s to the gitignore.
[Cleaning] Remove whitespace noise
Complete ObjectPath validation for case where there are consecutive slash
Adding more linkage to our README
[Signature] Add simple validation to Signatures.
[build] Move DType and ArgDirection to their own files
[build] Fix the makefile build.
[Signature] Use cached signatures where appropriate.
[Signature] Make a method static for consistency

MakeArraySignature should be called MakeArray and be static to be
consistent with the rest of the code.
[Signature] Add tests for making a dictionary

Add a method to check whether a signature is a single complete type or
not and update the MakeDict method to use this.
[Signature] Add some more error handling to signature creation

Ensure that arrays can only be created out of single complete types and
also that structs cannot be created with no types in them. Dictionary
entries and arrays are now recognised as being single complete types
too.
[build] Move lots of classes and enums to separate files
[build] Split more classes into their own files
[build] update the build files too
Fix possible race due to multiple concurrent assignement of the wait event in PendingCall.
Disable broken matching on sender for signals. Fix issue #8.
When closing a bus, check that it hasn't been cached in buses static dictionary and if true, remove it from there. Fix issue #9.

Initial patch by ermshiperete.
Related to previous commit, also add the new test to the .csproj file