fix(Interaction): ensure multi-collider objects register touch properly
fix(Interaction): ensure multi-collider objects register touch properly

Previously, there was an issue with controller interaction touches
that meant if an object had multiple child colliders, it would register
a valid touch on one of the colliders and set the interactable
object associated with that collider as the `touchedObject`. However,
when another collider in the interactable object's collider set
was touched, it would register an trigger exit on the controller
touch and execute the `StopTouching` method only for 1 frame as the
next collider would then register a valid touch again keeping the
interactable object as the touched object.

This would cause a problem as as soon as `StopTouching` was called
it would also call `StopUsing` meaning if an object was being used
and the controller was being moved in a way that could cause the
collider trigger issue to occur, then the object would stop being
used until the use button was pressed again.

The new solution is to keep track of all of the colliders in a
game object and whenever the controller touches one of those colliders
it gets registered as an active collider, and when the controller
stops touching one of the valid colliders, it gets removed as an
active collider.

If the controller is no longer touching any of the object's colliders
then it is considered to no longer be touching the object. This way
means a more verbose and error free way of checking the object is
being touched or not.

Blueteak/SteamVR_Unity_Toolkit,mattboy64/SteamVR_Unity_Toolkit,nmccarty/htvr,red-horizon/VRTK,thestonefox/VRTK,virror/VRTK,gpvigano/VRTK,pargee/SteamVR_Unity_Toolkit,adamjweaver/VRTK,Fulby/VRTK,TMaloteaux/SteamVR_Unity_Toolkit,thestonefox/SteamVR_Unity_Toolkit,Innoactive/IA-unity-VR-toolkit-VRTK,gpvigano/SteamVR_Unity_Toolkit,gomez-addams/SteamVR_Unity_Toolkit