Fix/improve #66 (#68)

Fixing it this way makes it cleaner to use/set the `usersecuritygrouplist` in clients using this, and keeps it simular in use compared to working with `serviceproviderlist` and `tags`.

Fixes #67
diff --git a/cloudstack/SecurityGroupService.go b/cloudstack/SecurityGroupService.go
index 4633e32..8034424 100644
--- a/cloudstack/SecurityGroupService.go
+++ b/cloudstack/SecurityGroupService.go
@@ -333,7 +333,8 @@
 	if v, found := p.p["usersecuritygrouplist"]; found {
 		i := 0
 		for k, vv := range v.(map[string]string) {
-			u.Set(fmt.Sprintf("usersecuritygrouplist[%d].%s", i, k), vv)
+			u.Set(fmt.Sprintf("usersecuritygrouplist[%d].account", i), k)
+			u.Set(fmt.Sprintf("usersecuritygrouplist[%d].group", i), vv)
 			i++
 		}
 	}
@@ -620,7 +621,8 @@
 	if v, found := p.p["usersecuritygrouplist"]; found {
 		i := 0
 		for k, vv := range v.(map[string]string) {
-			u.Set(fmt.Sprintf("usersecuritygrouplist[%d].%s", i, k), vv)
+			u.Set(fmt.Sprintf("usersecuritygrouplist[%d].account", i), k)
+			u.Set(fmt.Sprintf("usersecuritygrouplist[%d].group", i), vv)
 			i++
 		}
 	}
diff --git a/generate/generate.go b/generate/generate.go
index d59349e..46ec022 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -690,7 +690,8 @@
 			pn("	u.Set(fmt.Sprintf(\"%s[%%d].service\", i), k)", name)
 			pn("	u.Set(fmt.Sprintf(\"%s[%%d].provider\", i), vv)", name)
 		case "usersecuritygrouplist":
-			pn("	u.Set(fmt.Sprintf(\"%s[%%d].%%s\", i, k), vv)", name)
+			pn("	u.Set(fmt.Sprintf(\"%s[%%d].account\", i), k)", name)
+			pn("	u.Set(fmt.Sprintf(\"%s[%%d].group\", i), vv)", name)
 		default:
 			pn("	u.Set(fmt.Sprintf(\"%s[%%d].key\", i), k)", name)
 			pn("	u.Set(fmt.Sprintf(\"%s[%%d].value\", i), vv)", name)