[#1990] Improve support for links

Problem description
===================

The previous code had a isLink method, but is_link was not available as part of getAttributes



Changes description
===================

Added getStatus as the base method for getting file/folder propereties.

With getStatus I have fixed a stupid design where getAttribute was returning a raw stat structure... this was a  quick hack required for SFTP.

To avoid the followSymlink flag, getStatus will always return both current and resolved stats.
This also avoid doing 2 separate calls in getAttribute to find out if a path is link or not... not sure how well this will work on WIndows, but I will work on a separate ticket.
This branch should still help as it defines a set of basic tests.

I have refactored isLink isFolder isFile to be shortcuts for getAttribute method.

I added tests for the new code.

After this, I will start working on adding link support for Windows.


How to try and test the changes
===============================

reviewers @alibotean 

check that code is ok.

Thanks!