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
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
Updated README to add info about GNUstep. Reorganized GNUstep-specific files.
Authorization support for pull replication

TDSocketChangeTracker wasn't getting any Authorization header value to put in the request.
Added API to TDPuller, and made it look up the credential from the default credential store.
If a username/password has been added for this domain in the Keychain, it'll be used.

This partly takes care of #58, although it doesn't include lenkawell's proposed support
for using a username/password baked into the URL. I'll add that later.