added validMouseButton to swipe, refactored longtap and gesture api to work better with async/setInterval, should fix so we dont end up in strange behavior