Allow gtfs.getStopsByRoute() to return all stops for all directions if direction_id is not specified (direction_id = null)

This is the implementation for issue [#19](https://github.com/brendannee/node-gtfs/issues/19).
This allows gtfs.getStopsByRoute() to return all stops for all directions if direction_id is not specified (direction_id = null). Other behaviours are the same as before (i.e. if direction_id is specified)

**Details**
* Previous implementation takes a sample size of up to 30 trips of the entire trip population to determine which trip is the longest (with the goal of determining all stops for the given route).
* Taking a sampling approach helps with preventing scenarios where a route has a significant amount of trips which will result in having too many queries to the db in this current implementation.
* However, sampling causes the function to be non-deterministic, returning different stops depending on the sampled trips.
* Sampling is not always necessary if the trip population is not too big and the difference between the population size and sampling size is not too big.
* This current implementation will only perform sampling if this difference meets a certain threshold, else it will sample the entire population.

Covered this new behaviour in a new test case for gtfs.getStopsByRoute(). 
All other tested cases passed (still not 100% coverage yet)