Interface code refactoring for interface. (More changes pending)

- Split header files
- Split code for vm-interface to a new file
- Rename interface class