mount: Fix returning wrong file length after truncate

Due to a bug mfsmount was returning wrong size of the file in the
following scenario:

  - open a file
  - write X bytes to it
  - make it shorter using truncate or ftruncate
  - get it's length using stat or fstat
  - close the descriptor used for writing

The returned length of the file was equal to X, despite of the fact that
truncate succeeded. This commit fixes the issue by removing size of the
file from mount's cache when all the data is flushed to the chunkservers
and the master server knows the new size of the file (ie. after sending
CLTOMA_FUSE_WRITE_CHUNK_END).

getattr (and setattr) functions in lizard_client.cc had to be modified
because of the following race:

  - [application]                               [mount's write worker] -
  - create a file
  - call write(off=0, size=X)
  -   returns X, but data is still located in the write cache
                                start writing the data to chunkservers -
  - call getattr:
  -   ask the master server for attributes (returns size=0)
                                     finish writing and set maxfleng=0 -
  -   call write_data_getmaxfleng (returns size=0)
  -   returns size=0

To avoid this issue write_data_getmaxfleng is called before
fs_getattr/fs_setattr.

The commit also provides a test which verifies if the proper size is
returned each time after writing a file and after truncating it.

Change-Id: Iae98c270505c93f36c19a91d6d04c4d8c0c0ac54