partition.finish() called only when allocated

finish() is expected to call only when it is allocated. the
SetPartitioner code does not handle allocating case during finish. Not
calling finish while allocating will also release the partition when
otter shuts down since its session will be lost

Earlier at some situations finish was called at same time the
time_boundary while allocating got over. This causes exception in
allocating code eventually not allowing otter to shutdown gracefully.
This commit will avoid that situation
Merge pull request #511 from rackerlabs/auto-859-scheduler_shutdown

AUTO-859: partition.finish() called only when it is allocated