move extensions into core lib
clean up the json handling, simplify it
finally clean up how we're indexing hashnames/tokens, split out overall link tracking, much cleaner
make discoverable and a router
move command/repl code into the lib so it can be shared