Add Remote#Ls.

Allow filtering heads by name.

@carlosmn you were right, It was way easier to implement everything in go land.
It is `git_remote_connect()` that triggers the connection. What I mean is that the connection and the extraction of the advertised refs are two different things, and `_ls()` can be called at any point including after a fetch (or a push) has been initiated.

Right now an extra connect call doesn't hurt, but it might soon. What I'm thinking is that what this does currently would be two different calls.

```go
remote.Connect(RemoteFetchDirection)
remote.Ls()
```