implement forward-mode AD using DualNumbers

Following #5, I decided to go ahead and implement this. Seems to work well.