Make upload destination an optional argument

Fixes #11

In "kamaki file upload", the destination path is now an optional
argument, set to be equal to the base name of the source path, by
default.
Separate empty dir, empty container, etc. errors

This fix affects "kamaki file list [/CONTAINER[/PATH]]" command

Before this fix, if there were no results to show to the user, an
"empty container" notification would appear.
Now, the command distinguishes between the various cases:
 - empty container
 - empty directory
 - non-existing object
 - non-directory object
and notifies appropriately.
Rename package kamaki.cli.command_tree --> cmdtree
Rename package  kamaki.cli.commands --> cmds
Rename module kamaki.cli.command_shell --> shell
Rename module kamaki.cli.one_command --> one_cmd
Rename class _command_init --> CommandInit

Class is located at kamaki.cli.cmds
Merge classes _optional_output_cmd, _optional_json

New class is called "OptionalOutput"
Old and new classes were/are located at kamaki.cli.cmds
Rename classes _id/name_filter --> [ID/Name]Filter

Both classes are located in kamaki.cli.cmds
Update kamaki.cli.cmds.astakos class names (pep8)

Renames:
_init_synnefo_astakosclient --> _AstakosInit
_project_action --> _ProjectAction
_application_action --> _ApplicationAction
_membership_action --> _MembershipAction
Move command-wait class to kamaki.cli.cmds

Move and rename:
kamaki.cli.cmds.cyclades._service_wait --> kamaki.cli.cmds.Wait

The class is now accessible to all commands, therefore it is not
an internal class for cyclades module. The name of the class
changed to conform with pep8 suggestions for classes
Update cli.cmds.cyclades class names (pep8)

Renames:
_init_cyclades --> _CycladesInit
_server_wait --> _ServerWait
Rename kamaki.cli.cmds.errors classes (uniformity)

Renames:
generic --> Generic
user --> Astakos
history --> History
cyclades --> Cyclades
image --> Image
pithos --> Pithos

Rational: each command specification can feature a class of error
handling methods, which can be shared with other specs, if the
later need to borrow the same behavior

Also, new names conform with pep8 suggestions for class names
Update cli.cmds.history class names (pep8)

Rename: _init_history --> _HistoryInit
Update kamaki.cli.cmds.image class names (pep8)

Rename: _init_image --> _ImageInit
Update kamaki.cli.cmds.network class names (pep8)

Renames:
_init_network --> _NetworkInit
_port_wait --> _PortWait
Update kamaki.cli.cmds.pithos class names (pep8)

Renames:
_pithos_init --> _PithosInit
_pithos_account --> _PithosAccount
_pithos_container --> _PithosContainer
_source_destination --> _PithosFromTo
_pithos_group --> _PithosGroup
Change kamaki.clients.cyclades class names

Names are changed for uniformity. Backwards compatibility is kept,
(old names are not dismissed)

Renames:
CycladesRestClient --> CycladesComputeRestClient
CycladesClient --> CycladesComputeClient

Users can still import and user CycladesRestClient and CycladesClient
Move default argument initilization to kamaki.cli

Default arguments where set in kamaki.cli.arguments using the
global variable "_arguments". This was a semantic mistake, a
pep8 violation and arguably bad style.  The "_config_arg"
variable was also global and auxiliary to "_arguments"
initialization.

The "_argument" and "_config_arg" global vars are removed from
kamaki.cli.arguments. The initialization is now an internal
proccess in the "main" function of kamaki.cli, which is the
method responsible for setting up all kamaki interfaces.
Rename _commands to namespaces in kamaki.cli.cmds

The underscore is removed because it is a global variable used
outside of the modules it is declared.
The new name is a precise description of what this variable is
used for.