virt: aexpect code cleanup

* aexpect should timeout instead of busy-wait
* aexpect should log server activity
* Make server reader & buffer handling match client
* Remove empty string from reader list
* Move aexpect server code into a function
* Move file cleanup into client close() method
virt: fix aexpect bug server inheriting client fds

On the line prior, the client uses _lock() which opens
a file descriptor.  The server was inheriting this open
fd via the subprocess.POpen() call.

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: Fix aexpect bug client loosing stdin/out fds

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: Add aexpect unittests

Signed-off-by: Chris Evich <cevich@redhat.com>