Feature ssl support

Merges the SSL Feature branch into master. 

MJ-455, MJ-577, MJ-573, MJ-574

All tests pass.