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
Merge branch 'port-tests' of https://github.com/xamarin/couchbase-lite-net into mobile
Merge branch 'port_revid_collator' of https://github.com/xamarin/couchbase-lite-net into mobile
Apply new pull-request
Merge branch 'mobile' of https://github.com/tilemapjp/couchbase-lite-net into mobile