Add duration

Add humanized duration (http://momentjs.com/docs/#/durations/).

I don't have any experience with testing, so if someone else can add a few tests it would be nice.
I agree, not sure we should throw an exception here.  How does duration handle an empty string?