Clean up the structure of some source code

New **protocol** module *<ripple/protocol/>* contains what was in src/ripple/data/protocol. Each file now includes what it uses.
Reviewers: @josh-ripple @donovanhide 
There's no particularly strong reason to prefer either approach, as far as I know. One disadvantage of an LRU cache is that "touch if exists" operations tend to become significantly more expensive -- and we expect this to be the most common operation.