added static assertions for optional to ensure nullopt and in_place are not used as param
small changes for optional
general changes
refactor http and all tests are passing
reconfigure build