Remove client lease related constants
Merge branch 'master' into append
Merge branch 'master' into append
Remove client lease code
Remove client lease code residue
Merge branch 'master' into append

Conflicts:
	master.go
Factor common code in client.write

- pushData and guaranteeChunkLocations are factored out for later use in
  client.Append.
- Initialize chunkManager in StartMasterServer.
- Improved error reporting in Master.parseServerMeta.
Add client side Append function
Bugfix: ChunkServer.chunks now maps to *ChunkInfo

- ChunkServer.reportChunkInfo now updates length properly.
Add Append RPC on chunk server side

- ChunkServer.Append
- Add an error code indicating not enough space for appending.
- Style fix: Modify reportChunkInfo to fit Golang's documentation style.
Add padChunk function for append requests

- The primary replica pads the chunk locally then applies the padding to
  all of its secondary replicas.
- Factor out code that applies serialized changes by primary to
  secondaries, which are used by Write and Append.
- Add IsAppend field in WriteArgs so we can reuse SerializedWrite for
  padding chunks.
Add helper functions in test_test.go
Add append test

- TestAppend
- Client.Append now returns file offset + error instead of just offset.
- Add error code for reporting append data size limit exceeded.
- Add error code for checking lease holder not found.
- Add constants in test_test.go for ease of testing.
- Client.pushData now returns error instead of bool.
- Bugfix: Correctly calculate when there is not enough space left for
  record appends.
- Bugfix: ChunkServer.Append now returns correct file offset, instead
  of returning chunk offset.
- Bugfix: Proper error code equality checking in
  Client.guaranteeChunkLocations for sgfsErr.
- Bugfix: ChunkManager.addChunk now returns sgfsErr.ErrChunkExist when
  adding an existing chunk instead of errors.New().
Client append retry on ErrNotEnoughSpace

- Client retries entire append op if ErrNotEnoughSpace is reported.
- Add TestAppend2 for testing appending data exceeds chunk size.
- Bugfix: Chunk servers pads a chunk if the current offset of the chunk
  plus the length of the data is greater then chunk size, instead of
  padding a chunk when the current offset is greater then three fourth
  of the chunk size.
Use logging framework instead of Println

 - Modify current fmt.Println to log.Debugln.
Check for duplicate extension requests

- Check for duplicate extension requests in
  ChunkServer.addChunkExtensionRequest.
- Modify TestAppend so each client writes different test data.
- Typofix.
Merge branch 'log'

Conflicts:
	client.go
	master/chunk_manager.go
	test_test.go
Merge branch 'master' into dev

Conflicts:
	chunkserver.go
	common.go
	master/chunk_manager.go
Fix some bugs in re-replication

 - Can re-replicate chunks now.
 - During re-replication, we will not grant new lease to the
   associated chunk handle.