Add Optional::emplace() - as in std::optional.

...so that instead of:

    br.device.reset(new OpenRTB::Device);

it'll be possible to do:

    br.device.emplace();

(And there'll be a lesser diff if I would someday prepare the patch (for the second time) to replace Optional by std::optional...)