add missing nbviewer.cache
update GitHub auth
use pylibmc

make async via ThreadPool
use thread pool for nbconvert calls