Added JSON visitor and traversal method for generating JSON data from a
workoutparse.

Also added a test class to test JSON traversals with the basic
"distance-only" test (e.g. '1000'). I also added an automatically failing
empty set test bc I haven't fully decided how to handle empty sets atm. I am
just allowing it to throw an exception but am leaning toward generating just
an empty workout struct.

I re-ordered the if statements in the swim_visitor class to follow the
workout order.