optional: rework operators and macros for easier debugging
add Tests for optional<T> to T equality
safer optional--
switch to scons