Spain considers Gibraltar a British colony. The dispute between Madrid and London has lasted for more than three centuries. But now an agreement is coming into force that will benefit thousands.