fare improvements

* modify FareService#getCost() to return a List<Fare>
* extend FareTypes to allow custom types
* add Fare#name, which contains a human understandable name for a fare

+ default FareTypes are uppercased
+ FareType interface is added, which custom FareTypes need to implement
+ FareTypes are extended to allow more complex calculations (if
  there isn't a STUDENT fare, than use the REGULAR fare when calculating
  the STUDENT fare total).
+ FareTypes may be added to the other fares when calculating a total
  (the BICYCLE fare should be added to both the STUDENT and REGULAR
  fare).
VizGui: dump fares when planning trips
add a fareData request parameter

The parameter is passed as-is to the FareService, to allow specifying
custom values which may modify the cost.

+ change the type of ride.route from AgencyAndId to Route
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 an optional fare_format to locales, which displays fares differently.
Add HuGTFS fare service
Add "Budapest bérlet" option to webapp