Can now use a debounce function with input pins to avoid switch bouncing. This is done by using clock ticks, where the API keeps track of the tick when the last interrupt occured and stops a new interrupt from being processed until the defined debounce ticks have passed. Some minor code cleanups as well