Port unit tests and fixes bugs

- Ported CRUDOperationsTest, DocumentTest, DatabaseTest, ManagerTest,
and RevisionsTest
- Fixed MonoSQLiteStorageEngine.GetDeleteCommand bug when constructing
a delete SQL command.
- Fixed ChangeTracker bug when checking the UserInfo
- Fixed Database.ParseRevIDNumber() bug when there is Whitespace at the
beginning or at the end of the revision id substring.
- Fixed Database.ParseRevIDSuffix bug when formatting the minIDToKeep.
- Worked around file.MoveTo Sharing Violation issue for
Manager.UpgradeOldDatabaseFiles()
Fixed regression in LruCache.

Running  by itself passed,
but it failed when running the entire  group. Fix a regression in
the LruCache and test now always passes.
Merge pull request #13 from xamarin/port-unit-tests

Port unit tests and fix bugs
Ported more unit tests and fixed bugs

- Ported AttachmentsTest, Base64Test, BlobStoreWriterTest, ChangesTest,
LocalDocsTest, MiscTest, RevTreeTest, SequenceMapTest, ValidationTest,
and ViewsTest.
- To inline with Android unit tests, start and stop database on every
single test method (see setup and teardown method in
http://developer.android.com/reference/junit/framework/TestCase.html
for references).
- Attachment : Fix reading stream to bytes[].
- Database : Implement GetAllViews(), fix QueryViewNamed() not updating
index when setting IndexUpdateMode to before, fix
GetAttachmentsDictForSequenceWithContent() not initializing dataBase64
to null which leads to incorrect result returned.
- DocumentChanges : Fix RevisionId property returning wrong data and
added IsCurrentRevision property.
- Query : Fix QueryOptions property setting state to
IndexUpdateMode.Before instead of IndexUpdateMode property.
- QueryRow : Fix Equal() when comparing Dictionary values.
- RevisionInternal : Fix initialized value of the sequence variable.
- Cursor : Fix crash in GetString().
- Misc : Implement ProperteisEqual to compare 2 properties
(Dictionaries).
- View : Add dump() method, fix bug in GroupTogether and GroupKey.
- Adjust line spaces in Document, BlobStore,  and UnsavedRevision.
- Base64Test is currently failed due to .NET Convert.FromBase64String
needs ‘=‘ padding when the length of the input string is not multiple
of 4. One way to solve this is to create a util method for decoding
base 64 strings that checks the length of the input string and does the
padding.
Port RevIdCollator from iOS

- Original Code :
https://github.com/couchbase/couchbase-lite-ios/blob/master/Source/CBL_R
evision.m
- Renamed CouchbaseSqliteUnicodeCollationFunction to
CouchbaseSqliteJsonUnicodeCollationFunction
- Renamed CouchbaseSqliteAsciiCollationFunction to
CouchbaseSqliteJsonAsciiCollationFunction
- Renamed CouchbaseSqliteRawCollationFunction to
CouchbaseSqliteJsonRawCollationFunction
Update Copyright information
Fix indent before author name in Attachments.cs
Update LICENSE.md

Added Copyright and Terms and Conditions info.
Fixed ReplicationTest failed tests

- Run and fixed tests in ReplicationTest
- Ported Get/Set Channels from Android
- Implemented an intermediate solutions for stopRemoteRequests() in Replication.cs
- Fixed bugs in Replication.UpdateProgress() when setting LastError
- Fixed bugs in Replication.UpdateProgress() when initializing remoteLastSequence
- Fixed bugs in Replication.Is404 by correcting the type check
- TestHeaders is still failed.
Rename LICENSE.md to LICENSE
Fixed Base64Test. Fixed TestPusherDeletedDoc.
Merge pull request #14 from xamarin/port-tests

Ported more unit tests and fixed bugs
Fixed ReplicationTest failed tests

- Run and fixed tests in ReplicationTest
- Ported Get/Set Channels from Android
- Implemented an intermediate solutions for stopRemoteRequests() in Replication.cs
- Fixed bugs in Replication.UpdateProgress() when setting LastError
- Fixed bugs in Replication.UpdateProgress() when initializing remoteLastSequence
- Fixed bugs in Replication.Is404 by correcting the type check
- TestHeaders is still failed.
Fixed TestHeaders. Fixed TestGoOffline.

Also working on TestGetRevisions, which only fails when
running all tests. When running all ReplicationTests,
or by itself, it passes just fine. Fails to Stop
quickly enough when it does fail.
Merge pull request #16 from xamarin/replication-test

Fixed ReplicationTest's failed tests
Merge pull request #15 from xamarin/port_revid_collator

Port RevIdCollator from iOS
Fixes #17
Fixes #19
Restructuring to use Shared projects. Added Android project.
Android library now builds. Java shims marked internal.