Merge Johannes' changes into mine

I tried my best to merge Johannes' changes into what I have been working on.  The directory structure comes from running `cargo new 6502emu --bin`.  There is one unit test that can be compiled with `rustc --test -A dead_code 6502emu/src/main.rs`.
That makes sense to me in principle, but I think ```bitflags!``` is sufficiently typesafe. It generates a struct that wraps a built-in type, with implementations for operators ```& | ^ - !``` (```BitOr```, ```BitAnd```, ```BitXor```, ```Sub```, ```Not```) and a few methods. It doesn't decay to the underlying built-in (for that, you need to explicitly call the ```bits()``` method), and you can't assign from the built-in type to the struct, or xor the struct with the built-in type.

If flexibility is a concern, we're also free to add our own ```impl``` block for additional methods like the ```to_bit``` functionality.

That said, it's quite a bit more API surface area than the ```Status```/```BitFlag``` combo in this pull request, and more API == more things that can go wrong. But I think we'll need most of the ```bitflags!``` methods or their equivalent eventually, like packing/unpacking ```Status``` for PHP/PLP, so we might as well use the existing code.

Disclaimer: Just watched https://www.youtube.com/watch?v=rX0ItVEVjHc which made me paranoid about taking up a whole byte just for a bool.