Complete issue #123

- Port fixed to the Issue couchbase/couchbase-lite-android#103
By not iterating over a copy, you open the possibility now that you are indirectly modifying a collection that you are currently iterating over using `foreach`, which is an undefined behavior in .NET. It's conceivable that the client completion handlers will fire, thus removing them from `requests`. Since those calls will come from other threads, however, those are all going to wait on the lock to be released.

All in all, I think it's more prudent to iterate over a copy and just lock `requests` long enough for the constructor to finish.