add context.inspect(), cleanup app.inspect()

closes #323 closes #250