cFieldAlignmentAttribute(): Use 64bit to validate the FIELD=n constant
enum parsing: Use 64bit for the constant value
hStrIndexing(): Solve out hToPow2() call, let astOptimize() do it
ast: Handle unsigned and 64bit BOPs in mul-to-shift optimization

hOptToShift() needed to be changed to use 64bit to store the constant
value and to optimize 64bit multiplications too, which is useful even
for LONGINTs in the normal 32bit FB.

The old hToPow2() only handled 32bit, and I couldn't figure out its
algorithm, so I changed it into a more trivial version that can handle
up to 64bit.

Furthermore, the old code checked the power of 2 exponent for being <= 32,
while it should check against 32 or 64 depending on the BOP type, so that
it can optimize in case of 64bit too.

Besides that, the old code missed optimizations in case the constant rhs
was an unsigned integer > 2GiB, i.e. big enough to appear as negative
number in the signed const_val integer, due to the > 0 check it did.
Now this part of the code explicitly only excludes 0 and values < 0 only if
the type is signed.