Random riders

Opening this request to begin the talk about the random rider mechanism.

This pull request will update and merge changes that will provide random riding around of riders

I believe that this still needs to be worked on further:
* Should keep track of current leg of the journey
* only read in one file at a time to preserve memory for the DB
* Corner case checking to ensure that a rider tries another station if there is no room to check the bike back in.

I am open for more comments


@cliffyg we could do either I think. The reason I returned -1 was for this callback routine, but I think there are ways to check whether an exception was thrown. However, if we returned `Long` values in all error cases it might be easier for us to identify what actions to take in the callback, rather than parsing an exception string to identify what happened.