add find_ship_by_id, make C++ more js like :D
update code to C++11
convert enums to enum classes
explicitly specify enum size
lets exploit in-class initialization
automagically delete surface