GNUstep compatibility (work in progress)

* Added a compatibility header TDGNUstep.h to declare stuff that isn't available in that environment.
* Abstracted JSON API in a TDJSON class so we can use a different one where NSJSONSerialization isn't available.
* Use <TouchDB/...> syntax for #imports.
* GNUstep doesn't have CoreFoundation, so work around that.
* GNUstep objects to assigning 'nil' to a non-id pointer lvalue; this usually shows up with those NSError** parameters.
* Commenting out TDReachability for now, since GNUstep doesn't have SystemConfiguration.
More GNUstep compatibility. Unit tests pass now.
Backed out an NSString workaround, now that the bug in GNUstep is fixed.
Added setup/build instructions.
Checked in two patch files that fix issues in GNUstep Base framework.

You'll need to manually apply these patches to your gnustep-base checkout, at least until these fixes get committed to SVN.
Updated MYUtilities submodule.
Added basic C API, TDC.h

Not thread-safe yet: can only be called from a single thread.
Improvements to C API

* Now actually thread-safe.
* Less data copying.
Updated submodule FMDB
Fixed problems inserting identical attachments

If a doc has two attachments with identical data, or if two docs with identical attachments are pulled in the same "batch", then insertion would fail because the second instance of the attachment couldn't be found (its writer having already been removed from the _pendingAttachments dictionary.)
Fixed this by leaving the attachment's key (digest) behind in the dictionary for the use of subsequent insertions of the same content.
This fixes #67.
Fix another race condition in TDHTTPResponse

In some cases the HTTP listener wouldn't send a response.
Fixes #73.
Removed unnecessary dispatch_queue from TDListener

Wasn't being used at all anymore, now that TDServer and TDRouter
manage their own threading.
Fixed a bunch of memory leaks and refcount cycles.

Most of these only become apparent when trying to close a CouchServer or TDServer.
Beginnings of authorization work on TDRouter

Added TDRouter.onAccessCheck callback so client can examine database & docID and block access.
Read-only mode for TDListener

New property TDListener.readOnly, and TouchServ "--readonly" flag.

Conflicts:

	Listener/TDListener.h
Merge remote-tracking branch 'origin/master'

Conflicts:
	Source/ChangeTracker/TDChangeTracker.m
	Source/ChangeTracker/TDSocketChangeTracker.m
	Source/TDBody.m
	Source/TDCollateJSON.m
	Source/TDDatabase+Attachments.h
	Source/TDDatabase+Insertion.m
	Source/TDDatabase+LocalDocs.m
	Source/TDDatabase.m
	Source/TDJSON.h
	Source/TDJSON.m
	Source/TDMisc.m
	Source/TDMultipartDownloader.m
	Source/TDPuller.m
	Source/TDPusher.m
	Source/TDRemoteRequest.m
	Source/TDReplicatorManager.h
	Source/TDReplicator_Tests.m
	Source/TDRouter+Handlers.m
	Source/TDRouter.h
	Source/TDRouter.m
	Source/TDRouter_Tests.m
	Source/TDServer.m
	Source/TDURLProtocol.m
	Source/TDView.m
	TouchDB.xcodeproj/project.pbxproj
Updated README.
More GNUstep fixes

Implement NSOperationQueue category method.
Merge remote-tracking branch 'refs/remotes/origin/master'
(Yeah, I already did this, but for some reason it wasn't recorded as a merge!)

Conflicts:
	Source/ChangeTracker/TDChangeTracker.m
	Source/ChangeTracker/TDSocketChangeTracker.m
	Source/TDBody.m
	Source/TDCanonicalJSON.m
	Source/TDCollateJSON.m
	Source/TDDatabase+Attachments.h
	Source/TDDatabase+Insertion.m
	Source/TDDatabase+LocalDocs.m
	Source/TDDatabase.h
	Source/TDDatabase.m
	Source/TDDatabaseManager.m
	Source/TDJSON.m
	Source/TDMisc.m
	Source/TDMultipartDocumentReader.h
	Source/TDMultipartDocumentReader.m
	Source/TDPusher.m
	Source/TDRemoteRequest.m
	Source/TDReplicatorManager.h
	Source/TDReplicator_Tests.m
	Source/TDRouter+Handlers.m
	Source/TDRouter.h
	Source/TDRouter.m
	Source/TDRouter_Tests.m
	Source/TDServer.m
	Source/TDURLProtocol.m
	Source/TDView.m
	TouchDB.xcodeproj/project.pbxproj
Cleanup from the GNUstep merge