Make some code more idiomatic

I've intentionally avoided any unsafe block until now. It's not a hard goal though; I just want to explore how pure-Rust implementation is usable. :)
But yeah, `[u8, ..N]` is not great everywhere if transmute is avoided. So I thought it's better to return `Vec` for now.. and you've just proved `[u8, ..N]` + `.as_slice()` is not so bad!
Anyway, what do you think about returning `[u8, ..8]` but using plain old way (`ret[i] = (len >> (8 * i)) as u8;`)?