James Grant Duff — British soldier and historian (1789–1858)