[Build] better guess for the C# compiler available

There are some distributions that bundle only a limited set of class
libraries to be able to meet size requirements better. Such is the case
of Ubuntu, which normally ships with only the subset compiled for the
4.0 version of the runtime.

In this case, the user may install the default Mono SDK packages when
asked by the configure script, which only includes the 4.0 compiler by
default (dmcs). At that point, banshee can already be compiled, but
the configure script would insist in requiring a 2.0 compiler. If the
user installs it, compiles Banshee and launches the "run" target, she
may get a runtime exception because of a runtime version mismatch, like
in bgo#675113.

This problem is commonly known, and there is a clear workaround for it:
http://orangesquash.org.uk/~laney/blog/posts/2011/10/mono-gotcha/
However it poses a small barrier of entry for new developers that try
to compile and run banshee from sources for the first time.

Now the configure script is smarter and tries to guess harder if there
is a C# compiler, even one that targets a higher version of the runtime
than the one that is required to compile banshee.

This possibility is only enabled in case the Mono version found is 2.8
or higher, because Mono 2.6.1 included the 4.0 profile only as a
"preview" [1] and might not be stable enough.

[1] http://www.mono-project.com/Release_Notes_Mono_2.6.4#C.23_Language

(commit taken from Banshee 3d3f7899465ee46e634b53c236401f612dac1492)
[Build] Automatically use dmcs if available by default
Merge branch 'stable'
[Engine-VBulletinChatbox] Initial vBulletin Chatbox support.

Initial protocol module for the vBulletin Chatbox plugin.
[Engine-VBulletinChatbox] Fix skipping old messages.
[Engine-VBulletinChatbox] Leave message parsing to MessageBuilder.
[Engine] Use HtmlAgilityPack to parse HTML and improve image parsing.
[Engine-VBulletinChatbox] Implement /me support.
[Engine-VBulletinChatbox] Trace calls.
[Engine-VBulletinChatbox] Update token if sending fails; Unicode

Update the security token and, failing that, try to log in anew if
sending a message fails the first time. Include commands to do this
manually.

Also, add Unicode support (decimal XML character escapes).
[Engine-VBulletinChatbox] Fix /relogin and /retoken.

* /retoken shouldn't request the security token twice.
* /relogin should request a new security token after login.
[Engine-VBulletinChatbox] Highlight my own nickname.

A bit weird that this is done completely manually in each protocol.
[Engine-VBulletinChatbox] Improve status messages.

Now output with every relogin or retoken operation, with less copy-paste!
[Engine-VBulletinChatbox] Don't prepend event prefix to commands header.
[Engine-VBulletinChatbox] Remove outdated code.

It unwittingly survived a restructuring...
[Engine-VBulletinChatbox] Fetch security token from FAQ page.

The chatbox archive is a notoriously slow page. The FAQ page seems to be
the most efficient page in terms of processing power, although the data
itself is extracted from the global search form.
[Engine] Handle the "embed" HTML tag gracefully.
[Engine-VBulletinChatbox] Add /say and /quit commands.
[Engine] Pass copies of the submodel when parsing HTML.

Without this, a message like
    one <img src="pic.png" /> two
ends up looking like
    two <Image> two
(the second string replaces the first).