point the spdylay and openssl git modules at location labs versions
update submodules with small fixes
use readonly submodule links
don't call make clean on spdylay, there's no clean target there.
small spdylay build fix
expose the SPDY ping to the ObjC layer:

 - [SpdySession sendPing]
 - [SPDY pingAll]
provisional support for sever push:

 - SpdySession.streams is now an NSMutableDictionary
 - change the user data passed to spdylay_submit_request to be the SpdySession (instead of the SpdyStream)
 - look up streams in the spdylay callbacks w/ the SpdySession.streams ivar (indirectly)
 - add a new factory method to SpdyStream to allow creating a stream from an associated stream
 - notice when we get a SPDYLAY_SYN_STREAM control frame, and set up push stream
add GCC_TREAT_WARNINGS_AS_ERRORS = YES to SPDY.xcodeproj/project.pbxproj
get the push support much closer to working

add a voip mode which creates CFStreams and sets the
kCFStreamNetworkServiceType to kCFStreamNetworkServiceTypeVoIP.
rework how ping is exposed via the SPDY class.

now, it is specific to a url and uses a block for calling back when a ping response comes in.
return an error from the BufferedCallback if the stream is closed but we don't have any headers
don't assume that the scheme of urls being loaded is https.

actually check, and pass an NSError describing the problem if
it is not https.

Before this change, http urls were accepted, but the port was defaulting to 443, which was wrong.
add the kSpdyHttpSchemeNotSupported error code.

when the http scheme is not supported, use this, and the kSpdyErrorDomain domain for the NSError.
add the kSpdyStreamClosedWithNoRepsonseHeaders error code, and use this when
a stream is closed with no response headers.

This can happen in the following senarios:

client         server
---------------------------
SYN_STREAM =>

            <= RST_STREAM

In this case, the stream closes with no headers.
add a check in [BufferedCallback onResponseData:] to see if we might have all the
data for the request in question.

This is done by checking for the presence of a content-length header, and if present,
comparing against the size of the total data accumulated to this point.

If these match, then we set a flag and call [self onResponseData:] immediately, instead
of waiting for the stream to close.
add +(int)[SPDY pingWithCallback:] which pings all open sessions and
returns the number of pings sent.

this should correspond with the number of times the callback is called if all
streams respond to the ping.
don't send an empty path
add the PushCallback, which is used internally in conjunction with another BufferedCallback
to make pushes work
brown bag build fix commit
move over to ARC