[#1247] Fix userExists for Domain Controller usage.

Problem description
===================

Describe the problem that these changes wants to solve.
This content should be created when a ticket is submitted and just link
the ticket or copy paste the ticket description... or find a way for
linking this review to a ticket.


Why we got into this (5 whys)
=============================

There are no automated test on the domain controller.


Changes description
===================

win32net functions require special privileges when used with domain controller and passing the DC as an explicit argument.

win32security method work with UPN name and we don't have to worry about parsing the domain from username.

This also include a drive-by fix for getting profile path.

The whole code was manually tested on a DC machine but we should add tests as soon as we have a DC builslave. I have planed that task for a future milestone.


How to try and test the changes
===============================

reviewers @alibotean 

The code is a bit hard to test on Domain controller.

I have crated a virtual Windows machine and configured the network as bridged on TAP0 (the VPN) ... and then I was able to join the domain and try to code.

The code was already tested by Laura and the package is already released. This is here mainly to let you know about the changes.

Thanks!