Fix the order of exceptions in Lock.aquire

The error: Lock.acquire: Bad except clauses order (KazooException is an ancestor class of RetryFailedError) was reported by pylint. The RetryFailedError path would never be executed, leading to a wrong flag set in case of cancelation, for example.
Remove extra line inserted in the previous commit.
Handle network partition in SetPartitioner receipe

If connection gets suspended, change state to ALLOCATING if we had already ACQUIRED.
This way the caller does not process the members since we could eventually lose session
and get repartitioned. If we got connected after a suspension it means we've not lost
the session and still have our members. Hence, restore to ACQUIRED
Empty list acl param should be consistent between public methods

In ensure_path() you can pass acl=[] and it is set to default_acl. Whereas in
create(), acl=None gets you default_acl but acl=[] gets you an InvalidACLError.

Here is the new test case for acl=[] without the change in create():

```
$ bin/nosetests -s -d kazoo.tests.test_client:TestClient.test_create_acl_empty_list

ERROR: test_create_acl_empty_list (kazoo.tests.test_client.TestClient)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "../kazoo/tests/test_client.py", line 455, in test_create_acl_empty_list
    client.create("/1", acl=[])
  File "../kazoo/client.py", line 775, in create
    sequence=sequence, makepath=makepath).get()
  File "../kazoo/handlers/threading.py", line 107, in get
    raise self._exception
InvalidACLError: ((), {})
```

And with the change in create() (i.e.: do as ensure_path() does):

```
$ bin/nosetests -s -d kazoo.tests.test_client:TestClient.test_create_acl_empty_list
.
----------------------------------------------------------------------
Ran 1 test in 2.112s

OK
```

Signed-off-by: Raul Gutierrez S <rgs@itevenworks.net>
Don't treat null (or None) data as ""

In ZK's Java impl if the data is null, it'll be serialized
with length equals -1. If it is an empty string, it'll be serialized
with length equals 0.

Currently, Kazoo treats data with a length of -1 as "". This diff
changes it so that it'll come back as None. Same thing for creating
and setting data to None. Tests added.

Reported-by: Grant Monroe <tnarg@twitter.com>
Signed-off-by: Raul Gutierrez S <rgs@itevenworks.net>
Logging levels have been reduced.

  - Logging previously at the logging.DEBUG level is now logged at
    the kazoo.loggingsupport.BLATHER level (5).

  - Some low-level logging previously at the logging.INFO level is
    now logged at the logging.DEBUG level.
typo
Only close if not None

If a user calls close from a client on a client
which was never started with its nice to just
do nothing instead of throwing a type error which
is what happens if os.close recieves a None type.
Fix Lock deadlock on CONNECTED->SUSPENDED->CONNECTED state change

Restarting the zookeeper leader node when two or more instances
of the following program are running will deadlock indefinitely.

```
from __future__ import print_function
from kazoo.client import KazooClient
import time

zk = KazooClient('node1,node2,node3')
zk.add_listener(lambda state: print(state))
zk.start()
lock = zk.Lock('/test')
while True:
    with lock:
        print('lock acquired')
        time.sleep(1)
    print('lock released')
```

Fix and test case included
Merge pull request #166 from jimfulton/lower-log-levels

Logging levels have been reduced.
Merge pull request #170 from jborg/fix-lock-reconnect

Fix Lock deadlock on CONNECTED->SUSPENDED->CONNECTED state change
Merge pull request #168 from harlowja/ok-close

Only close if not None
Add changelog for pull req # 168.
Merge pull request #148 from rackerlabs/partition_suspension

Handle network partition in SetPartitioner receipe
Add change entry for partitioner pull req.
Merge pull request #165 from rgs1/test-null-data-as-the-java-impl-does

Don't treat null (or None) data as ""
Add changelog entry regarding API change from pull req #165.
Merge pull request #164 from rgs1/make-acl-param-consistent-between-create-and-ensure-path

Empty list acl param should be consistent between public methods
Add changelog for PR #164.
Merge pull request #146 from ReneSac/master

Fix the order of exceptions in Lock.aquire