Make sure ports are closed when they're no longer used.

It appears to be a common pattern that extensions don't invoke the
responseCallback, and so the port objects leak. Register a callback that
triggers when the responseCallback is finalized to free up these resources.

BUG=114738, 93566

Review URL:

git-svn-id: svn:// 0039d316-1c4b-4281-b951-d872f2087c98
4 files changed