I thought about building one in PhantomJS, since it seems it can extract all the required assets, but gave up on it since most of the content I care about is in my RSS archive anyway.
What about browser -> save as -> save as type "Website, complete"? Not really a library, and not really something you could do retro-actively to urls already bookmarked without revisiting the pages, but it sort of works.
Regarding a library for archiving a URL - it'd be interesting if there were a way to save a url by inline css and javascript in the html, and converting images and other assets to data urls.
I thought about building one in PhantomJS, since it seems it can extract all the required assets, but gave up on it since most of the content I care about is in my RSS archive anyway.