Got the ChaCha RNG working with "absorb" and "squeeze" sponge-like functionality (it's cheating).
I think I need to completely rewrite my Trivium code and take a different approach. I just can't match the test vectors. Probably something to do with endianess.