1) In the Waf Book you can find different examples of this.
Under section "3.2.2. Loading and using Waf tools", you'll see that they load the tool 'dang.py' from a folder '.' by using:
def configure(ctx):
ctx.load('dang', tooldir='.')
When it loads dang.py it will also call the 'configure' function inside it. Same goes for 'options', 'build' etc.
Another example is using the extras ("11.1.2. Build visualization"):
def configure(ctx):
ctx.load('parallel_debug', tooldir='waf-1.7.13/waflib/extras')
2) When distributing, I always use vanilla waf, and instead provide the wscripts and tools files.
But if you do run that command line:
waf-light --tools=compat15,boost
you'll get a waf executable that has the tools built in. You can distribute that exe if I understand it correctly.
Note that you still need to load the tools as usual
ctx.load('boost')