move metronome & checkBPM to tools

Closes #5
apply optimizations in depth
add OptStep