Reworked `robot.durability()` implementation, closes #666.
It now returns a single number, the relative durability (0 = broken, 1 = no damage), using durability provider methods that can be registered via IMC `registerToolDurabilityProvider` (takes a single string, the name of the class+method, e.g. `com.example.OCInterop.getDurability`), returns a double, NaN if unsupported item stack. Added custom providers for IC2, RF, GT and TCon.