steam-api: provide a SteamSummary for returned list items

Rather than returning Steam IDs and then requesting SteamSummaries,
request SteamSummaries internally and return them. This leads to
significantly fewer HTTP requests being made as up to 100 summaries
can be requested at once. And alike requests can be shared, rather
than sending another request. Additionally, this makes working with
the SteamApi interface much cleaner.
Implemented friend management capabilities

This introduces several far overdue features relating to Steam Friend
management. Many of these features have been possible since the birth
of this plugin, however, there was no JSON parsing capabilities.

This patch introduces several more Steam Community API requests. These
new requests require a session ID which is obtained during the
authentication process. As a result, this patch will require the user
to reauthenticate so that a session ID can be obtained.

Introduced features:
  - Friend addition
  - Friend blocking
  - Friend removal