Client Certificate support for TLS - for master branch

This patch has a long history. It is not perfect, but then neither is Play! It does allow one to do make TLS user friendly, in a very efficient non blocking way. It fulfils all the requirements of  #1760 . 

( note there are a few other things in there too, which can be removed such as 
 - an improvement to allow one to have multiple WS implementations
 - support for MKCOL 
 - some scripts I tried to use to get this to compile on Travis ( unsuccessfully, Play takes up too much resources )
It's just easier for me to maintain one branch than a whole bunch of differences with Play )