refactor fares to support returning more details

* modifies FareService#getCost() to return a List<Fare>
* extends FareTypes to allow custom types
* adds Fare#name, which contains a human understandable name for a fare
* details returned in Itinerary#totalFare and Itinerary#fares

+ default FareTypes are uppercased
+ a FareType interface is added, which custom FareTypes need to implement
+ FareTypes are extended to allow for inheritance and "globalness", to
  assist with calculating the total fare for an itinerary
VizGui: dump fares when planning trips
Display extended fare info in the webapp

Clicking on the cost in the 'Trip Details' box for the itinerary opens
a message box containing more information...
Add a fareData request parameter for influencing calculations
Add an optional fare_format to locales, which displays fares differently.