cmake dependency refactoring / manage own dependencies / WIP

**This will significantly change the build system**

This is a first step to bring in proper multiplatform support, managed solely from CMake. To enable this, we will manage all library dependencies ourself, instead of relying on package managers like brew or apt-get.

I.e.: instead of installing dependencies via brew, *use CMake in the extdep folder* (see the Readme there)

In the first step, only libraries CryptoPP and Json-RPC-CPP are included; it is a test to see that this workflow will work for everyone. This will also fix #453

The included libraries work fine under Ubuntu and OS X. Windows support is not there yet, however the patches from @debris in this PR are necessary to enable Windows support later (see #469)



What is still missing:
* Most libraries still need to be CMake-ified, so brew/apt-get  is still needed for them. 
* An automatic compile step will be added to provide pre-compiled libraries from buildbot, so that developers won't have to compile libraries themselves
* buildbot will likely complain about this PR, let's see.


(not an issue)
```
The following names should not usually be used in CMakeLists.txt files, but they may be usefully modified in users' CMake Caches to control stuff.

XXX_LIBRARY             Name of XXX Library. A User may set this and XXX_INCLUDE_DIR to ignore to force non-use of XXX.
```

Can we also set XXX_LIBRARY?
Libraries like boost, cryptopp, and json are cases where we will only link one (or a few) of the libraries rather than a single library. It's worth communicating throughout the configs with XXX_LIBRARY or XXX_LIBRARIES to communicate "This library has multiple binaries" or "This library has a single binary". In other words, for cryptopp we would use XXX_LIBRARY and for json-rpc we use XXX_LIBRARIES; this way we know that later LIBRARIES can be replaced with only the library(ies) which are actually used.