Implement price-based mercantile skill progress (Fixes #1947), thanks Hrnchamd

Correct barter formula (removed erroneous clamping)