Merge remote branch 'upstream/general-devel' into general-devel
Merge pull request #463 from TShock/general-devel

General devel
[Rest] Add support for jsonp
Merge pull request #465 from Scavenger3/RestJsonp

[Rest] Add support for jsonp
Please stop stalking us on Teamspeak ffs.
Made the README suck less!
-Added REST per-endpoint permissions.
-Added REST endpoint "/v2/server/restart".
-Added REST endpoint "/v2/server/reload".
-Added REST endpoint "/v3/server/rawcmd", will output all returned lines as an array instead.
-Added "uptime", "serverpassword", "rules/ServerSideInventory" fields to REST endpoint "/v2/server/status".
-REST requests are now logged.
-Endpoint "/v2/server/rawcmd" does now check whether the user has the sufficient permission to execute the command.
-Fixed Config.EnableTokenEndpointAuthentication not working properly before.
-Removed obsolete "api" permission (only "restapi" now).
Minor REST improvements.
-Added "/v2/server/rules" and "/v2/server/motd" endpoints.
-Minor REST fixes.
Split REST permissions from Permissions into RestPermissions class.
Fixed broken build due to last commit.
REST resolves the user's group on each request now.
-Added REST endpoint "/v2/token/destroy/all"
-Added command "/rest destroytokens", "/rest listusers"
-Improved group loading from the database:
--TShock will now attempt to load any available valid group data even if there are invalid records and will also report proper errors / warnings.
--"superadmin" is now a reserved group name.
--Groups with parents causing infinite parent loops, invaild parents, or parenting theirselfes will have their parent group reset.
--Double definitions of groups with the same name are no longer allowed.
--Group instances are now tried to be preserved instead of being recreated during a reload of the group data.

-Added command "/group parent" to get and set the parent of groups.
-REST Endpoint "/v2/groups/create" will no longer allow creating groups having theirselfes as parent.
-REST Endpoint "/v2/groups/update" will no longer allow setting a group's parent to theirself or setting a parent group resulting in an infinite parent loop.
-This commit should fix #482.
Merge pull request #508 from CoderCow/patch-2

Group Improvements
Closes #482
-Improved group loading from the database:
--TShock will now attempt to load any available valid group data even if there are invalid records and will also report proper errors / warnings.
--"superadmin" is now a reserved group name.
--Groups with parents causing infinite parent loops, invaild parents, or parenting theirselfes will have their parent group reset.
--Double definitions of groups with the same name are no longer allowed.
--Group instances are now tried to be preserved instead of being recreated during a reload of the group data.

-Added command "/group parent" to get and set the parent of groups.
-REST Endpoint "/v2/groups/create" will no longer allow creating groups having theirselfes as parent.
-REST Endpoint "/v2/groups/update" will no longer allow setting a group's parent to theirself or setting a parent group resulting in an infinite parent loop.
-This commit should fix #482.
Merge pull request #508 from CoderCow/patch-2

Group Improvements
Closes #482
Added "/rest listusers" to "/rest" default output.
Fixed all REST endpoints to use RestObjects instead of Dictionaries.
Moved all new REST endpoints to "/v3"as "/v2" was incompatible.