Add macros to skip code if requirements are not met
Move circular_buffer and triple into namespace
Simplify requirements.hh