Array length in bytes

This allows for decoding an array with an unknown amount of entries, but known byte size as discussed in #9.

```coffeescript
new r.Array(r.uint16, 6, 'bytes') # three uint16s
```

This isn't entirely backwards compatible. The following will decode until the end of stream, whereas previously it would decode nothing:

```coffeescript
new r.Array(r.uint16)
```

Is that expected behaviour?