Prefix the Venice Message header with magic byte and schema info

Changes:
- Pull schema info from the stores.xml
- Add the magic byte and schema info to the Venice Message 
- Reject messages that fail to match what is expected
- Some minor code refactoring and bug fixes
I don't think this is a good idea. If the process crashes between reading the message and storing it, then you will forever skip that (potentially valid) message the next time the process starts up. If there is a chance that reading a message throws an exception, then it should be caught and handled appropriately... Reading a message twice is okay since puts are idempotent operations, but skipping is not okay...