Improve erlang metadata API

The metadata API used to return a #topic record containing #partition
records. This commit changes that API to returns one of the following:

1) {error, Reason}, when there's an error in the request.
2) {ok, PartitionResponses} when there's at least partial success.

In the case of (at least) partial success, it returns a list of tuples
which represent the responses for each partition in the topic. The two
possible values are:

1) {error, PartitionID, Reason}
2) {ok, PartitionID, {LeaderHost, LeaderPort}}