Fix bogus zero-length array test.

Issue 7175 was about .ptr always giving null for a zero-length
static array in a struct, despite the fact that the struct has
size 1 and thus certainly a non-null address.

The test case as modified by 36c9b64, however, checks that a
free-standing zero-length static array on the stack has an
address, which is quite a different scenario. From the spec,
I don't see a reason why zero-sized objects should need any
memory associated with them, so I am reluctant to pessimize
LDC's codegen over this.
Use an intermediate representation to reinterpret the value in Target::paintAsType
Fix Issue 3918 - Parameter use before its use in an AndAnd expression with reals treats NaN as false
Fix  Issue 12827 - [ICE] Segfault on immutable field self-initialization
Fix test output message
Fix test output message #2
fix
Issue 13303 - Internal error: ..\ztc\cgcs.c 351 with rvalue Variant.get call
fix
Issue 11946 - need 'this' to access member when passing field to template parameter
[reg] Temporary fix Issue 13321 - Wrong goto skips declaration error
[refactoring] turn PROT into struct and rename it

Makes it possible to easily add additional protection
information and differentiates between protected imports
and actual attribute.
Support 'package(ident)' syntax (parser/AST)

This commit adds capability of parsing and resolving
explicit package defined for package protection attribute. Adjusting
acess checks to use it will be done in separate commit.
Fix #2529: package protection + sub-package

Fix relevant issue by allowing to explicitly define
package to bind protection attribute to. Defaults
remain unchanged.
Reject non-parent protection packages

Using non-existent or non-parent package as an argument to
'package' protection attribute will result in compile-time error.

Test cases with error message output added.
Improve ProtDeclaration error formatting.

Now includes actual protection attribute kind and package name (if any)
    into error message. Also stores location information from the parser.
Do not generate code for protection tests
Printing of ProtDeclaration is handled by visitor
Move isAncestorPackageOf docs to definition
Simplify isAncestorPackageOf implementations
Trivial whitespace fix
Move package resolution to semantic phase