Amend folder structure and Cargo.toml; add bitflags! implementation of registers::Status

Sorry about the monolithic commit. I'll try to keep history cleaner in the future.

Here's what this commit does:

1. Turn emu6502 into a library. Make the existing 'main' into a separate executable. Modify the directory structure and Cargo.toml to make this conventionally rusty. See comments in Cargo.toml for some explanation of the structure.
    * 'cargo build' builds everything, no matter where in the repository your working directory is
    * 'cargo test' runs tests
2. Change whitespace to 4-space
3. Finish comments on Instruction enum
4. Add comments to AddressingMode enum, and change variants to be clearer/correct. So ```IndexedIndirect``` becomes ```IndexedIndirectX``` since that's more specific and helps distinguish it from ```IndirectIndexedY``` (Are they correct now?)
5. Fix ```MEMORY_SIZE``` constant
6. Use ```bitflags!``` for the processor status flags. I don't think @akeeton is on board with this change, but I figured I'd propose a working implementation for discussion. (If there's no consensus, I'll amend this pull request to make no change here)