Allow const menu items to accept visitors.

The visitors must have methods that accept const references to the concrete menu items.
Moved icon.hpp to new directory.
Suppress unreferenced parameter warning caused by Boost.Concept.
Move warnings settings to separate CMake module.