use pragma once include guard
move contents of module_pwm_common to module_pwm_symmetrical
add documentation