Added defined Clojure types for the channels.

Protocol: GoChannel
Types: Channel, BufferedChannel, TimedChannel
All have open/close and preferred/unpreferred settings

Have not yet refactored (channel) fn to use this, nor any of the examples.
Modified the preferred-channel factory fn to invoke the channel factory fn
Added toString to Channel and BufferedChannel.

Tried adding defmethod print-method but I can get how to reference
the deftypes I created.
Completed changes to GoChannel types; implement Closeable and toString
Improvements in core for speed & compatibility with typed channels.

Moved more fns into GoChannel protocol to get fast lookups of channel
and queue methods (ie., avoid reflection).
Made the channel-->collection fns compatible with typed channels.
Modified conc-prime-sieve and google-search to use typed channels
Refactorings - examples and core.

Core: made the outer doselect aware of preferred channels, but it delegates
all the first pass to a fn that is not aware of preferred channels.
Needs further work.
Moved with-channel-open macro out of core and into a util class in clj-examples.

Examples:
- added chinese-whispers in Go and Clojure.
- refactored examples that use with-channel-open to reference the new
  thornydev.go-lightly.examples.util namespace.
- updated run-examples to run clj chinese-whispers
Added an as-you-go right-to-left version of chinese-whispers example.

Can go up to somewhere between 200,000 and 300,000 channels, since
not are all simulataneous.
Refactored select impl/helper fns to understand preferred channels.
Fixed bug in core/probe-til-ready fn. Working through unit tests for core.
Added more tests for select, select-timeout and select-nowait.

Still need to test timeout-channels and preferred channels.
Added more tests to core-test. channel->seq/vec tests.
More core tests - preferred, timeout channels, variations on select
core-test includes drain and lazy-drain tests

Updated remaining clj-examples to use the new TypedChannels API
Added 'clear' to GoChannel protocol. Built webcrawler using TypedChannels.

webcrawl_typed is current named - rename to webcrawler later.
Added clear to core.  Added version of webcrawl using TypedChannels.
Started new README alongside original one (README.new)
Merge branch 'TypedChannels' of https://bitbucket.org/midpeter444/go-lightly into TypedChannels

Conflicts:
	test/thornydev/go_lightly/core_test.clj
Fixed core-test on behavior of closed sync channels.

Added more to the new README on the select operation (including variants).
core was modified to more efficiently handle select (and variants) with single arg

core-test updated with additional tests around this.
Updated README to fill out select section with Go examples.
Moved orig README to README.old; README.new.md to README.md