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 
Not related to this review, but the mutex used in KeyCache appears high up in profiling. Why is KeyCache a sweeped and expiring cache and not a LRU cache where the evictions occur in insert()?