tests: Fix up Makefile and csproj file
tests: Add various interface tests
tests: Add new test case for an interface with two possible names

This test case comes for the Banshee source, in MultimediaKeysService.cs
and is created by the fact that the d-bus interface for media keys in
gnome-settings daemon was renamed between GNOME 2.20 and GNOME 2.22.

This is currently not supported, so failures are ignored and logged.
tests: Add several more tests in ExportInterfaceTest
Update .gitignore for tests
build: Use automake in tests/

Replace the hand-crafted Makefile by a Makefile.am. This means the tests
will now be included in the tarball.
Move bunch of classes in their own file
Fix parsing of AddressEntry, only ascii uppercase/lowercase letter and number are accepted
Sanitize Connection class.

Move field and property at the same place, wrap field in properties, remove dead code.
Try all existing alternative addresses that may exist for the same bus.
Big addition to public API.

Add a Protocol namespace composed of all the low-level classes that are relevant for directly manipulating bus communication and make these class public.
Refactor a bunch of class to use properties instead of using directly fields. Move common code to helper methods. Sanitize way public fields were previously accessed.
Add new files to .csproj project file
Cleanup MessageReader API. Implement a fast-path for primitive array initialization and optimize general case. Add unit tests for MessageReader.
Add support for direct marshalling of structs whose elements have the same alignement property. Add corresponding unit tests.
Use static field initialization for system/session bus singletons. Fix possible race resulting in double instantiation.
Refactor Invoke and SendMethodCall in BusObject
Refactor MessageWriter
Small cleanup in TypeImplementer
Reorganize static fields in Bus to avoid static initializer order mess