Move all protocol definitions to protocol/*.h and keep only definitions related to our implementation as *.h in the top directory. Also, remove some header files to reduce header file proliferation.