Use BufReader when reading bytecode from files

Using a 32KB buffer this allows us to drastically reduce the time spent
parsing bytecode files. Consider the following program:

    import std::ansi
    import std::ffi
    import std::fs
    import std::mirror
    import std::stdio::stderr
    import std::stdio::stdin
    import std::stdio::stdout
    import std::time

    stdout.print('hello world')

Prior to these changes, running this program (ignoring the compilation
itme) takes around 240 milliseconds. With these changes, this is reduced
to 20 milliseconds: a 12x improvement.
parent 47580733
Pipeline #41499152 passed with stages
in 19 minutes and 41 seconds