Make an interface for IWritingSystemDefinition and use where appropriate

Actually I used it in all the methods of IWritingSystemRepository,
and in places where it seemed natural to change it to get everything
to compile again.

The main motivation for this is to make testing easier. It's also more
consistent with WritingSystemRepository, which does have an interface.

I also went ahead and deleted an obsolete method, since I was going to
have to change its signature anyway.
Basics of KnownKeyboards

Adds a section to the LDML something like this:

	<special xmlns:palaso2="urn://palaso.org/ldmlExtensions/v2">
		<palaso2:knownKeyboards>
			<palaso2:keyboard
				layout="MyFavoriteKeyboard"
				locale="en-US"
				os="Unix" />
		</palaso2:knownKeyboards>
		<palaso2:version
			value="2" />
	</special>
Define an interface and equality test for KeyboardDefinition
Add IKeyboardController,  WritingSystemDefinition.OtherAvailableKeyboards

IKeyboardController and related Keyboarding class to track current
instance supports implementing and testing the OtherAvailableKeyboards
method.
KeyboardDefinition.IsAvailable and Activate()
Close FlexBridge2.0 branch
Merge: FlexBridge2.0->default
Update version number
Merge: FlexBridgeBeta->default
Merge: FlexBridgeAlpha->default
SP-738: Added property to allow the client to enable/disable the periodic checking for a new recording device
SP-735: Put in defensive code to prevent crash when toggling wait cursor state.
Prevent double "file://" prefix in XmlDomExtensions
Extend timeout in ProgressDialogTest
Don't let progress crash just because some user string has { and } in it.
Fix iso lookup controls that had been pushed off the edge.
SP-739: Added ability to control interval and initial enabled state of timer to check for new recording devices.
Added DirectoryUtilities method to determine whether two folder paths are equivalent.
Fix AudioRecorder so it doesn't bully the system recording level to 100%.
Temporarily ignore 2 tests that never did run on TeamCity