British Prime Minister David Cameron says he mishandled the row over his shares in his father's offshore business interests, which were exposed by the Panama Papers revelations.