[Rewrite] TruckParser2013 project. Vehicle loading reworked for more stability and flexibility for future maintenance.
Features:
* Bulletproof syntax-check; no more crashes on invalid .truck syntax
* Improved module (a.k.a. "sectionconfig") support; Almost anything can be modularized.
* Clean code with consistent architecture.
* Parsing is decoupled from physics core; parser generates a RigDef::File object for further processing.
* Spawning vehicle is performed by separate class, RigDefSpawner
[Fix] Command key inertia: typo in log message.
[Fix] Parser, section "commands2": Up to 2 misplaced strings after parameter #10 'description' are now tolerated for backwards compatibility. Warning emitted.
Problematic truck: TATRA 815 VVN 8x8 [http://www.rigsofrods.com/repository/view/4778]
[Fix] .truck parser, section "flexbodies/forset": Tolerating duplicate commas ",," and comma after last element (backwards compatibility)
Problematic truck: TATRA 815 VVN 8x8 [http://www.rigsofrods.com/repository/view/4778]
[Fix] .truck parser, section "commands2": Corrected behaviour with illegal strings after param #10 'description'
[Fix] .truck parser: section "shocks" now tolerates illegal text after parameters (warning is logged)
[Fix] Removed bug where truck dashboard overlay appeared if player exited truck while "cinecamera" was active.
[Fix] Crash when any vehicle was removed using "TOP MENU -> Simulation -> Remove current vehicle"
[Fix] Badly merged "fast-skeletonview" patch by Theshark; some additional cleanups.
Beam.cpp:
        * Cleanup;
        * Removed timing entry because the new logic is so simple that profiling it makes no sense anymore.
        * Skeletonview material given more descriptive name.
Beam.h: Renamed function because the the name was misleading.
BeamStats.cpp: Deleted timing entry.
[Fix] .truck parser: section "globals" now tolerates invalid character after end of input (warning is logged)
[Codechange] .truck parser: directive "set_inertia_defaults" is now more tolerant to bad syntax.
[Cleanup] .truck parser regexes: macros renamed, definitions re-organized. No changes to logic.
Most signifficant changes:
E_COMMA_SPACES -> E_DELIMITER_COMMA
E_COLON_SPACES -> E_DELIMITER_COLON
[Codechange] .truck parser: section "submesh/cab" now recognizes 'n' placeholder and tolerates invalid flags (warning is logged).
[Fix] .truck parser: section "fusedrag": added correct default airfoil name.
[Fix] Rear view mirrors are working now.
Problems:
* RigDefParser.cpp: Idiot me copied code...
* RigSpawner.cpp: Turns out "videocamera" must be processed before "props". Tested. Reason unknown.
* VideoCamera.cpp: Logic corrected.
[Codechange] .truck parser: section "props" now accepts both comma and space as separators.
[Fix] .truck parser, section "props": Special "dashboard[-rh]" now loads "dashboard-mesh" correctly and obeys parameter "rotation-angle"
[Fix] .truck parser, section "railgroups": Parser was freezing due to mistakenly infinite loop.
[Fix] .truck loading: "slidenodes" handled correctly.
[Fix] .truck loading: directive "set_managedmaterials_options" handled correctly.
Cleaned up dead code from previous implementation.