Initial commit

cleaned/organized comments and code.

Shouldn't debounce function check the switch again after waiting period?

ie
(identify initial closure AND wait AND check for same value) OR
(identify initial closure AND check for same value for X cycles)