parser-decl-var: Remove seemingly useless dtype check

This check was placed after the symbAddVar() in case of a new dynamic
array, or after the lookup of an existing array. In the symbAddVar() code
path the symbol is guaranteed to use the dtype given to symbAddVar()
already. And the lookup of an existing array is done by dtype already
anyways, so no mismatch could ever happen later.
parser: Allow duplicate dynamic array EXTERNs
Add more tests for REDIM & co
parser-decl-var: Remove unnecessarily complex error recovery
parser-decl-var: Simplify hDeclExternVar()