implement iterable interface of navigation item.
modify the `item.args` into non-cached property.

`item.args` is app-context related. it should not be cached.
implement the navigation bar and extension api.
test the navbar.
send a signal while a navbar been created.
add bound type property.
enable the doctests on all modules.
add more tests for bound type property.
fixup and test the extension api.
expose api in the top level of package.
Merge branch 'feature/bar' into develop