Refactored onClick()

Split out the distinct functionality of onClick into separate functions
to make it more readable.
Added Convex Hull

Added Convex Hull algorithm along with supporting functions. init() now
selects an algorithm at random to use.
Merge branch 'convex-hull'