intel-iommu: clear up vtd_init()

Move most initialization work to a new function do_vtd_init(). Add
clean_address_space() to free all the memory allocated in address_spaces.
Implement the vtd_reset().

Bug: vtd_reset() will not be called yet.

Signed-off-by: Le Tan <tamlokveer@gmail.com>