Needed to provide os_interface funtions for get_page_mode to work.
Removing poorly used global cr3 value.

This moves the calling of any hueristic method to OS
specific init function, which will make easier to deal
with dependencies on global fields that need to be set
to work.

The cr3 field was used for 2 things:
1. Value for VMI_FILE to return for get cr3, but it never gets set for
CR3.
2. Flag that get_memory_layout() did not work, either because of
errors or because the driver does not support it.  The side effect
was calling functions to set kpgd and cr3 using OS specific methods
as above.