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.
I clearly don't know JS, I guess you can't put parentheses around the `void` operator, only subsequent expression. I never think of it as a unary operator, I think of it as a cast in C terms. Anyway I guess you chose the right one anyhow =)