Cut down on repeated dependencies in the cabal file.

Unfortunately, there is still no perfect way to cut down on
repeated dependencies in the library and test sections of the
cabal file. About the best we can do without relying on generating
the cabal file is to have the test section declare that it
depends on the library (spdy-base). This is a feature supported
by Cabal versions 1.8 and later, so I've had to bump the
declared Cabal-version.

However, not all the duplication is gone. If the test modules
use anything other than the modules in spdy-base, you have to
declare dependencies for the corresponding packages. But at
least some of the duplication is removed.

There is a drawback though: now all the modules that have tests
have to be exposed. (See the stack overflow question and answer
at http://tinyurl.com/k6yvn9a)

In addition to making the test section depend on spdy-base, we
use only 'test' as the source directory. This has the benefit
of eliminating double-compilation of the main library files
just to run the tests.

It would also be a good practice to put the main source tree
inside a 'src' directory, and similarly for the little test
programs. I'll make those changes in separate commits.

Finally, I discovered that I had forgotten to add the module
Network.SPDY.Internal.Constants to the original 'other-modules'
in the library section. Now that it's got to be exposed to
run the tests, the tests fail to link. I've added it to the
exposed-modules.

1.