add support for extra SoftLayerTemplateOptions

- refactor VirtualGuestToJson to use internal domain objects
- add support for primaryNetworkComponent.networkVlan.id, primaryBackendNetworkComponent.networkVlan.id, postInstallScriptUri, user-data, privateNetworkOnly and sshkeys via SoftLayerTemplateOptions