Fast and accurate option pricing using adaptive finite differences