Initial work on an attempt to represent traffic systems by means of differential geometry - parametric curves.

1. Each road will have Lane objects defined by parametric curve, ie P(t) = [ u(t) , v(t) ; {t,low,high} ]
  -> TODO: think of directions representation. (Lane could store initial and final Vertices, but what about lanes in CrossRoad objects? -> Same Vertex)

2. Added CrowssRoad Object. Each allowed pair of 2 roads at CrossRoad form RoadTransition object. Each of these RoadTransitions maps to CrossRoadSubSystem which is collection of all Paths formed by Lane objects (usually only 1 Lane to form Path), that translate Car Entity from Road1 to Road2 through Crossroad using inner-crossroad Lanes - needlesly to say, these Lanes are abstract and usually intersect each other - Traffic lights and anti-collision ray casting should prevent collisions. This concept is particularly usefull at roundabouts and possibly more complicated crossroad as one can precisely define trajectory through crossroad by Parametric Curve or their collection.
  -> TODO: Interface this with Pathfinding systems.

3. TODO: ADD NonDeterministicFSM for Car entities for switching lanes. (Low prority)
   -> Create RayCasting mechanism for sises of Car Entities, so they don't bump into each other while changing lanes.
   -> If NDFSM decides to switch lane to left or right do:
           a) Search for that lane in left or right proximity.
           b) RayCast for other cars in particular angle.
           c) RayCast for coming crossroad objects.

4. TODO: ADD FSM for Car to handle Car entitity movement on 2 levels.
   -> First level: based on current relative deviation from trajectory defined by par. curve, adjust movement vector of car to follow trajectory.
                 : create currentSpeedTransitions based on RayCasting. If there is a car or crossroad in front proximity slow down. Keep low while crossing Crossroads,
                   drive faster on straight and empty Lanes.

   -> Seconds level: implement FSM to interface Car Entity with CrossRoadSubsystems. Car Entities should keep track not just about current global plan, but also about
                     which Lane are they currently on + current CrossRoad.
                   : (Important concept) Car Entity continuously scans for other Lanes defined in CrossRoadSubsystem. If Car gets into the zone of other lane which is in
                     its current micro plan defined by CRSS, it switches Lane for the newly found (Could be for example exit from RoundAbout)

5. TODecide:
    -> Work with continuous derivatives of par curves or just discrete?

6. TODO Interface Traffic Lights Systems. Obviously Angle based system will not be sufficient for this anymore.

7. TODO Implement other ParametricCurveShapes. With this representation roads can have non-linear shape, i.e. they can bend etc.

8. TODO Implement Parametric Curve distance measure. -> Discretization will most probably be enough.

9. Adjust Systems and Components to the changes in Traffic Objects.

DEADLINE ~ FRIDAY
Firt multi lane system working...
Further work
Major code refactoring.
Some core functionality is still not recoded, so just a beta release ^^

CrossRoad and Road object remade!
Continuation of complete PC implementation.

CrossRoads fully operational, some automatized generator should be implemented.
I'm too destroyed to give any more sophisticated comments at the moment...
Fixed classpath and syntax errors in POI
Toggled print statemtents
Manhattan implementation
slight improvement in debug rendering...
Merge branch 'origin/functional-ndfsm-approach'
Some refactoring, path finding seems to work
Merge branch 'origin/develop'

Conflicts:
	core/src/main/java/editor/PointsOfInterest.java
	core/src/main/java/functions/VectorUtils.java
	core/src/main/java/graph/GraphFactory.java
	core/src/main/java/trafficsim/TrafficSimConstants.java
	core/src/main/java/trafficsim/components/RouteComponent.java
	core/src/main/java/trafficsim/factories/EntityFactory.java
	core/src/main/java/trafficsim/screens/SimulationScreen.java
	core/src/main/java/trafficsim/systems/MovementSystem.java
	core/src/main/java/trafficsim/systems/SpawnSystem.java
Merged develop, resolved all conflicts. Running without traffic lights
Temporarily fixed bug with number of lanes in createCrossRoadSubSystem(), it won't work for multiple lanes
Fixed the graph creation, but now the transitions are not perfect
Traffic lights
Larger vertices and toString() methods
Parametric steering on edges
Giannis enjoy!
Following curved turns beta
Don't remember anymore