File name changes to support selective require.

As the library has grown, so has the number of files. Because of the
size of the library a lot of code will be included with a simple
"require 'concurrnet'" statement. We have been very dilligent to
explicitly require all dependencies in all files so that individual
abstraction can be included, such as "require 'concurrent/future'" but
this is often too granular. The new directory structure supports
selectively including several realted groups of abstractions, such as
"require 'concurrent/channels'".
Minor test refactor.