Add default descriptions to configure options.
Add Wno-unused-parameter to clean up included protobuf headers.
Change generated install to support variable options.
Correct generated comment on output variables.
Fix typo.
Merge pull request #53 from evoskuil/version2

Change generated install to support variable options.
Remove redundant echo of build directory.
Merge pull request #54 from evoskuil/version2

Remove redundant echo of build directory.
Remove unuspported (DLL) build configurations from VS solution.
Fully-generated Travis build matrix.
Merge pull request #56 from evoskuil/version2

Fully-generated Travis build matrix.
Rename msvc bitcoin-client to example-client
Move the obelisk stuff into its own folder
Remove obelisk_router::set_message_stream

Changing this in mid-communication would break the state machine.
If a client wants to change streams,
they should just create a new obelisk_codec instance.
Do not pass std::function by reference

The Visual Studio compiler has trouble automatically constructing
std::function rvalue references from non-member, non-lambda functions.
Plus, rvalue references make the API more confusing.

Given this, the most efficient approach is to pass std::function by value.
This allows each stage to take advantage of std::move,
passing the contents along to their final target in a zero-copy manner.

Passing std::function by const reference would require a deep copy
at the final step in the process, so it's actually less efficient.
Do not pass shared_ptr's by reference

The whole point of this class is to enable ownership semantics,
whereas references imply that the caller maintains ownership.

Plus, non-const references cannot accept anonymous rvalues.
This makes the function harder to call.
Split the obelisk codec into two parts

One part handles the request/reply matching,
and the other handles the individual message encoding.
Remove enable_sideeffects from sleeper interface
Add unit tests for obelisk message encoding
Fix API data widths