Add support for chrome.downloads API

https://developer.chrome.com/extensions/downloads
As above, optional string fields should be declared as {string|undefined}.