dh/refactor plat header

This series of commits clarify the platform porting interface, separating the functions/definitions that must be implemented in every platform, the functions/definitions that may optionally be utilized by multiple platforms, and the functions/definitions that are specific to the FVP platforms. It also contains some miscellaneous interface tidying up.