Introduce namespaces (breaking API)

This is a major refactoring. Expect breakage.

The existing setup, where 9pm resided in the global scope (and ::int::)
didn't scale and was extremely fragile.

Reasons for this patch
----------------------
Naming collision
If a user named his function get_time and returned a unix timestamp it would
override the get_time function used by 9pm to add timestamps, resulting in
logs switching to unix timestamps half way through the execution. There where
_many_ more commonly named variables and procedures in the global scope,
creating a minefield for users.

Scalability
As the ::int namespace was the only safe-haven for arbitrary naming of internal
variables and procedures it rapidly filled with things related to all parts of
the framework. This obviously didn't scale very well.

Whats new
---------
The new top level namespace is 9pm. Under 9pm resides various sub-namespaces
that divides the code into logical parts, like "output", "cmd", "shell" and
"ssh" to name a few.

All these sub-namespaces are unique to tcl/expect/tcllib. Meaning that the user
could neglect the 9pm by recursively importing using "namespace path ::9pm".

API changes (neglecting ::9pm)
------------------------------
shell               -> shell::open
close_shell         -> shell::close

ssh                 -> ssh::con

execute             -> cmd::execute
start               -> cmd::start
capture             -> cmd::capture
finish              -> cmd::finish

scp                 -> scp::transfer, scp::put, scp::get

output              -> output::warning, output::debug, output::debug2,
                       output::info, output::note
result              -> output::plan, output::ok, output::fail, output::skip

get_node_info       -> conf::get
get_req_node_info   -> conf::get_req

get_time                    -> misc::get::time
get_unix_time               -> misc::get::unix_time
get_rand_int                -> misc::get::rand_int
get_rand_str                -> misc::get::rand_str
get_script_path             -> misc::get::script_path
get_script_name             -> misc::get::script_name
get_running_script_path     -> misc::get::running_script_path
get_running_script_name     -> misc::get::running_script_name
prepend_path                -> misc::prepend_path

Under the hood
--------------
Using namespaces to limit scopes means that shell data can be stored in
9pm::shell::data while config data can be stored in 9pm::conf::data. These
are then accessed by procedures within the same scope using simply $data.
This is a huge advantage to the old code where all different things where
stored in the same place (the ::int namepsace), like int::shell_data and
int::config.