feature(api) added INNamespace.draft(<id>)

This amends INNamepace#draft to add an optional argument containing
the ID of an existing draft, and will return a promise which will
resolve to the queried draft or an error.

I'm not too happy at overriding the return type to be either a bare
draft or a promise of an existing one, but I think calling the
draft-retrieving function draft() is consistent with what we already
have, and I don't feel great about renaming the existing function to
newDraft() either.
Oh god, `undefined` can be redefined? Well that's my depressing learning of Javascript for the day.