[#2426] Refactor getAttributes and setAttributes.

Problem
=======

getAttributes had a very stupid interface.


Why we got this
===============

Initial implementation of SFTPPPlus server with twisted was for the FTP server,
and FTPShell has this over engineered interface.


Changes
======

permissions were renamed to `mode` to match names from os.stat

getAttributes now returns an object which encapsulates all attributes.

We still have getStatus method which provides low level access... and which is used by getAttributes

setAttributes was updated to use 'mode' instead of 'permissions' as it is closer to the os.chmod method used to implement it.


How to test
==========

reviewers: @alibotean

check that changes make sense.

This is a break in API and we need to change all other repos using this API

I have already tested this new branch in parallel on chevah.server ... will open a new review soon

Thanks!