publish: store and return entire JSON response from silos
store full source profile URL as well as domain
start to render recent publishes
extract pretty_link() into webutil, use it from there

added to webutil in snarfed/webutil@852e34da04692dc8561ac4429137526cb994f80e