Add build condition to some source files

E.g.: GnomeApplication.cs is only to be compiled if the dependencies (gnome-sharp.dll) are present on the build system. So, it will only be included in the build process, if it is a GnomeDebug or GnomeRelease build.
Fix solution file so that MD recognizes tasque as Startup project
Refactored INativeApplication interface and implemented NativeApplication

INativeApplication interface:
* Initialize: removed following parameters
	- locale_dir ... this anticipates a certain i18n technology. Removed in order to make it platform indepenedent
	- display_name ... this was only there for GNOME platform
	- process_anme ... this was only there for GNOME platform
* renamed ExitingEvent to Exiting (better naming)
* renamed OpenUrl to OpenUrlInBrowser (better naming)
* reordered file contents alphabetically

NativeApplication class:
* Implementation: platform independent
* this class may be added to in the future (currently it is not very useful - other than being a reference implementation of the interface)

Misc:
* made adjustments to new Interface/abstract class in solution where necessary
* documented INativeApplication and NativeApplication
* integrated documentation build in GnomeDebug and GtkLinuxDebug build configurations
Added license headers

* contributors taken from git log
Merge branch 'master' into gsoc_refactor_libtasque
Revert to 682d7485df4cd713ca5b6e8354230f4c8556a3b9
Remove mdoc update command from build

* mdoc update is not working. Remove it for now.
* removed some file includes which have been deleted from libtasque.csproj previously
Change GlobalDefines.cs build

GlobalDefines.cs holds information like version number and license about Tasque. It is generated by a special MSBuild task ("SetDataAtBuildTime") from GlobalDefines.cs.in after the build of build.csproj (which builds the SetDataAtBuildTime MSBuild task). GlobalDefines.cs is then linked to by the various .csproj files of the solution which include it in their build.

* build.mdproj: has been renamed to build.csproj
* build.csproj:
	- removed all stuff related to MSBuild.Community.Tasks, which is not needed anymore
	- added build configuration to build SetDataAtBuildTime.cs

* tasque.sln:
	- reflect build proj changes

* .gitignore:
	- reflect removal of MSBuild.Community.Tasks
	- add ignore of .mdb files

* MSBuild.Community.Tasks.dll and MSBuild.Community.Tasks.Targets: Those are not needed anymore, since everything is now handled by a custom self-written task

* GlobalDefines.cs.in and GlobalDefines.cs:
	- include some more data about the project
Add a TreeModel implementation with independent backing store

The standard implementation of the Gtk.TreeModel interface, which is Gtk.TreeStore, is considered the model in the MVC oriented Gtk framework. As such it has its own internal means of storing data. In order to use an alternative backing store, e.g. a generic Collection, a custom TreeModel implementation has been built.

Resources used:
* mono docs
* gtk+ docs
* article: http://www.mono-project.com/ImplementingGInterfaces
* reference implementation: NodeStore.cs at https://github.com/mono/gtk-sharp/blob/master/gtk/NodeStore.cs
Progress...
Begin work on RtmBackend transition
Added ObservableTransformCollections as submodule
Add ObservableTransformCollections as submodule

* this submodule provides the classes
	- TreeModelListAdapter (replaces TreeViewModelImplementor)
	- CollectionView (replaces the TreeModelFilter and TreeModelSort)
	- CollectionTransform (base class of the above)
Transition to CollectionView and TreeModelListAdapter

* IBackend.cs: SortedTasks is now IEnumerable, so it can be assigned from CollectionView.
* ITask.cs:
	- ITask needs to be an INotifyPropertyChanged for the CollectionView to work properly.
	- There is no need for the CompareTo method anymore. This is already defined in IComparable<T>.
* AbstractTask.cs: Provide a OnNotifyPropertyChanged method for children to call.
* Application.cs:
	- Hook up tooltip change handler with CollectionView's CollectionChanged event.
	- Use CollectionView.Count to retrieve the number of items in the View.
* DummyBackend.cs: Apply CollectionView for SortedTasks implementation. Use the default comparer (which is used by the default SortDescription).
* DummyTask.cs: Fire OnPropertyChanged events instead of calling IBackend.UpdateTask (ITask).
* CompletedTaskGroup.cs:
	- Add static helper method for creating the completed tasks' CollectionView.
	- Remove CompletedTasksComparer, which is obsolete since the introduction of CollectionView.
* CompletedTaskGroupModel.cs:
	- Adjust FilterTasks method to meet the requirements of CollectionView.Filter predicate.
	- Adjust to changes of base class.
* TaskGroup.cs:
	- Adjust for the use of CollectionView
	- Use TreeModelListAdapter<ITask> to hook up the underlying CollectionView with the TreeView.
	- Use CollectionView.Refresh method to reflect changes in the filter.
* TaskGroupModel.cs:
	- Change base class from TreeModelFilter to CollectionView<ITask> and adjust resp. members appropriately
	- Rearrange some members to better meet oo design concepts
	- Shorten IsToday method.
* TaskGroupModelFactory.cs: Adjust to new TaskGroupModel class.
Cleanup

* DummyTask.cs: DummyId isn't used anywhere.
Push clean submodule
Change Categories type from Gtk.TreeModel to ObservableCollection<T>.

* ICategory.cs: must be INotifyPropertyChanged in order to work with CollectionView.

+++
NOTE: This should not be necessary and must be fixed in CollectionView, preferably by adopting the .NET implementation of CollectionView/ListCollectionView/...
Issue has been filed on Github.
+++
Cleanups and addition of license headers.
Remove last Gtk# dep from model: IBackend.GetPreferencesWidget ()

The method IBackend.GetPreferencesWidget () has been substituted by the read-only property IBackend.Preferences, which is of type IBackendPreferences. This interface has been created to provide an abstract handle for the class PreferencesDialog.cs in the application. A concrete preferences widget is being provided along with the backend implementation: DummyPreferences.cs.

This commit removes the last residuals of Gtk# in the model.