Big changes to memory classes:  Added read_byte, write_byte, read_bytes, and write_bytes so we can have PIC18 flash variables that are not word size.  Got rid of Memory#[] and Memory#[]= because it is not obvious if those should work with bytes or words.  Changed MemoryInteger subclasses except MemoryWord to use read_byte and write_byte.
Memory classes: Removed read_bytes and write_bytes because their only purpose was efficiency and they have surprising effects on non-PIC18 flash memories (write_bytes(0, [1, 2]) is not equivalent to any sequence of write_byte commands because it affects the MSB of a flash word).
Updated the Memory class comment and put it in the RPicSim module!
Added a test to program_memory_spec.rb to make sure that write_byte on PIC18 program memory only modifies one byte of the word.
Fixed the comment for RPicSim::Sim#program_memory.  It does not have the revision ID because that feature seems to not be working.
Manual: Added a section about Memories, right after Variables.
Memories.md: Minor fix.
Memories.md: Added the synonyms of 'program memory' in case people are searching for them.
Merge branch 'dev/david/memory_bytes'
spec/unit/mplab_memory_spec.rb: Added unit tests for read_byte and write_byte.
Made def_flash_var suppport all the same variable types that def_var support (in addition to :word).  Removed the setting of the 'max_value' because that should probably be done at the Memory or MplabMemory level instead.
Added the :memory option to def_var and made def_flash_var simply call def_var.  Added ProgramFile#label_addresses to help with that.
Updated the documentation of def_var.
Sim: Got rid of unused variable @code_word_max_value.
Moved the tricky logic about how variables are defined and bound out of Sim and into a new class called VariableSet.
Removed 'def_flash_var' in favor of using def_var for all variables.
Updated Variables.md in light of recent changes.  Got rid of most uses of the word "flash" in other pars of the documentation, in favor of the more general "program memory".
Made sure Word variables have the right size.  The size needs to be two if they are in PIC18 program memory.
Got address detection working for EEPROM variables.  Renamed ProgramFile methods: #var_addresses became #symbols_in_ram, #symbols_in_code_space became #symbols_in_program_memory.  Added ProgramFile#symbols_in_eeprom.
VariableSet: Renamed the integer types from things like u8 and s8 to the more standard names like uint8 and int8.