Adding Json Providers and tweaks for nuGet

I've added a JSON data provider and I've tweaked the nuGet settings so
that it will now download missing nuget packages on strange machines.
Added comments and tidied up unneeded code