Added penalties mechanism for search.

Each type of edge can get penalty - Dijkstra then use as weight of edge
edge_time * edge_type_penalty. When calculating transfer time, penalties
are ignored.