Bucket search does not allow bucket/index name to differ

An enthusiastic ML member was trying to search via the bucket interface:
```
bucket = client.bucket_type('animals').bucket('cats')
bucket.enable_search()
bucket.set_property('search_index', 'famous') # NEW: Setting the search index to the bucket
key = bucket.new('feliz', data={"name":"Felix","species":"Felis catus"}, content_type='application/json')
key.store()
print bucket.search('name=Felix')

riak.RiakError: 'No index <<"cats">> found.'
```

The client interface allows for the name to be specified:
```
    def fulltext_search(self, transport, index, query, **params):
        """
        fulltext_search(index, query, **params)

        Performs a full-text search query.

        .. note:: This request is automatically retried :attr:`retries`
           times if it fails due to network error.

        :param index: the bucket/index to search over
        :type index: string
        :param query: the search query
        :type query: string
        :param params: additional query flags
        :type params: dict
```

We should tweak the bucket call to optionally specify the index name, since it's currently set to the bucket name:
```
    def search(self, query, **params):
        """
        Queries a search index over objects in this bucket/index. See
        :meth:`RiakClient.fulltext_search()
        <riak.client.RiakClient.fulltext_search>` for more details.
        """
        return self._client.fulltext_search(self.name, query, **params)
```
This is simpler:

```python
search_index = index or self.name
```