Add support for Union types, including completion

NOTE: these modifications should be review in the context of https://github.com/google/tern-closure/pull/34

Some Union type functionality requires tern-closure to be tested, (thats why some of the new tests reside in tern-closure) as the doctrine parser is required to parse union types from annotations.