Fix #435 Missing the last group when there is no reduce

* Fix the bug in CBLView that the last entry is not included into the rows result when there is no reduce block given.

* Add CBL_View_Grouped_NoReduce to CBL_View_Tests.m.

* Add all missing CBLView Tests into TestCase(CBLView).
Fixed more unexported-symbol issues

Missed CBLHTTPErrorDomain (an NSString constant).
Also, I renamed the classes GCDAsyncSocket and WebSocket to have a "CBL_"
prefix but forgot to update them in the .exp file.
For some reason both of these mistakes only manifested as errors in the
Release build, not Debug -- I thought the symbol exporting would be the
same in both cases but apparently not.
Fixed a Release-only compile error in CBLQueryPlanner
#435 Remove reduce test accoarding to code review

Per code review, removing reduce test as the callReduce method will return nil when there is no reduce. The code is also cleaner without the test.
Merge pull request #445 from couchbase/feature/issue_435

Fix #435 Missing the last group when there is no reduce
Finally converted CBLQueryOptions from a struct to an Obj-C class.

Cherry-picked from forestdb branch.

Conflicts:
	Source/API/CBLQuery.m
	Source/CBLDatabase+Internal.h
	Source/CBLDatabase+Internal.m
	Source/CBLView+Internal.h
	Source/CBLView+Querying.m
	Source/CBL_Database_Tests.m
	Source/CBL_Router+Handlers.m
	Source/CBL_View_Tests.m
	vendor/CBForest
Back-ported CBJSONEncoder from the forestdb branch

This replaces CBLCanonicalJSON. It's a faster encoder that uses the C
yajl library.
Merge branch 'master' into forestdb

Conflicts:
	CouchbaseLite.xcodeproj/project.pbxproj
	Source/API/CBLQuery.m
	Source/API/CBLView.m
	Source/CBLDatabase+Insertion.m
	Source/CBLDatabase+Internal.h
	Source/CBLDatabase+Internal.m
	Source/CBLView+Internal.h
	Source/CBLView+Internal.m
	Source/CBLView+Querying.m
	Source/CBL_Database_Tests.m
	Source/CBL_Router+Handlers.m
	Source/CBL_View_Tests.m
	Source/CouchbaseLite.exp
Unit tests for CBJSONEncoder

Also added some improvements to handling of booleans vs. small integers.
Merge branch 'master' into forestdb
Renamed the .mm files back to .m

Git didn't understand about the initial renaming to .mm, so it thought
they were different files. That made merging from master a lot harder!
So I've renamed them back to .m, and added custom "-x objective-c++"
compiler flags in the build stages source-file list.