Add 'non_unique' argument to user functions.

* fabtools.user.create
* fabtools.user.modify
* fabtools.require.users.user

When non_unique=True, it allows to create or modify a user account with
a duplicate (non-unique) UID.
Corrects the default value of 'non-unique' agrument.

The default value is now `False`
Add test for creating user with non-unique uid.
Add git.fetch operation, use it in require.git.working_copy.
Uses `SHOW DATABASES` to test existent of database.

The `mysql.user` and `mysql.db` table is used for
access privilege.
see http://dev.mysql.com/doc/refman/5.5/en/grant-table-structure.html

A database owned by root may not exists in the
`mysql.db` table. So `mysql.database_exists` function
may fails if the database is owned by root user.

Use `SHOW DATABASES` instead of `SELECT Db FROM mysql.db`
avoid the problem.
Merge pull request #95 from erning/mysql_db_exists

Uses `SHOW DATABASES` to test existence of MySQL database
Merge pull request #93 from disko/master

Add git.fetch operation and use it in require.git.working_copy.
Fix: non-root users cannot always use ifconfig
Upgrade default Node.js version to 0.10.4
Upgrade default Redis version to 2.6.12
Formatting
Documentation tweaks
Fix handling of optional path argument in ``git.working_copy()``
Use fabtools.files.md5sum() in git test fabfile
Use ``run`` instead of ``sudo`` when possible in git test fabfile
Fix test failure in git test fabfile [#93]
import require.git into require module namespace
Merge pull request #98 from jbking/import_requre_git

import require.git into require module namespace
Import git module into the top-level module namespace
Refactor git test fabfile