Reworking and hardening of the BL3-1 interface for alternative Trusted Boot Firmware

These patches contain changes for implementing the interface between TF images and also adds support for making BL3-1 as a reset vector as described in ARM-software/tf-issues#133