Check behavior of a server with just resources.

Fixed bugs:
- A resource result holds a slice of contents, not just one.
- No params in 'resource/read' should not panic.
- No params in 'resources/subscribe' should not panic.
- No params in 'resources/unsubscribe' should not panic.

-- resources --
info
info.txt

-- client --
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": "2024-11-05",
    "capabilities": {},
    "clientInfo": { "name": "ExampleClient", "version": "1.0.0" }
  }
}
{ "jsonrpc":"2.0", "method": "notifications/initialized" }
{ "jsonrpc": "2.0", "id": 2, "method": "resources/list" }
{
  "jsonrpc": "2.0", "id": 3,
  "method": "resources/read",
  "params": {
    "uri": "embedded:info"
  }
}
{
  "jsonrpc": "2.0", "id": 3,
  "method": "resources/read",
  "params": {
    "uri": "file:///info.txt"
  }
}
{
  "jsonrpc": "2.0", "id": 0,
  "result": {
	"roots": []
  }
}
{ "jsonrpc": "2.0", "id": 4, "method": "resources/read" }
{ "jsonrpc": "2.0", "id": 5, "method": "resources/subscribe" }
-- server --
{
	"jsonrpc": "2.0",
	"id": 1,
	"result": {
		"capabilities": {
			"logging": {},
			"resources": {
				"listChanged": true
			}
		},
		"protocolVersion": "2024-11-05",
		"serverInfo": {
			"name": "testServer",
			"version": "v1.0.0"
		}
	}
}
{
	"jsonrpc": "2.0",
	"id": 2,
	"result": {
		"resources": [
			{
				"mimeType": "text/plain",
				"name": "info",
				"uri": "embedded:info"
			},
			{
				"mimeType": "text/plain",
				"name": "public",
				"uri": "file:///info.txt"
			}
		]
	}
}
{
	"jsonrpc": "2.0",
	"id": 3,
	"result": {
		"contents": [
			{
				"uri": "embedded:info",
				"mimeType": "text/plain",
				"text": "This is the MCP test server."
			}
		]
	}
}
{
	"jsonrpc": "2.0",
	"id": 1,
	"method": "roots/list"
}
{
	"jsonrpc": "2.0",
	"id": 3,
	"result": {
		"contents": [
			{
				"uri": "file:///info.txt",
				"mimeType": "text/plain",
				"blob": "Q29udGVudHMK"
			}
		]
	}
}
{
	"jsonrpc": "2.0",
	"id": 4,
	"error": {
		"code": -32600,
		"message": "invalid request: missing required \"params\""
	}
}
{
	"jsonrpc": "2.0",
	"id": 5,
	"error": {
		"code": -32600,
		"message": "invalid request: missing required \"params\""
	}
}
