Expose Encoder.EncodeSliceLen to mirror Decoder.DecodeSliceLen

Notice we already have [`Deocder.DecodeSliceLen`](http://godoc.org/github.com/vmihailenco/msgpack#Decoder.DecodeSliceLen). This adds support for the `Encoder` equivalent.

**Use case**

This way arbitrary slices ([]`interface{}`) can be efficiently encoded and decoded with needing to resort to reflection.

e.g. (ignoring the handling of errors):

```go
// type Client is defined elsewhere

type Encoder func(*msgpack.Encoder, interface{}) error

func (c *Client) makeCall(method string, args interface{}, e Encoder) (error) {
        // var enc *msgpack.Encoder

        // ....

	err = enc.EncodeSliceLen(4)
	err = enc.EncodeInt(req_type)
	err = enc.EncodeUint32(req_id)
	err = enc.EncodeString(req_meth_id)
	err = e(enc, args)

        // ....
}

```