Add support for the array querying function in a constant context

This patchs adds support for the $dimensions() and $unpacked_dimensions()
array functions. Since the argument is only used to get the type information
these functions can always be evaluated at compile time.

For the following functions if the dimension argument is constant or omitted
and the first argument is not dynamic (a string or dynamic array) they will
return the specified information.

  $left(), $right(), $high(), $low(), $increment() and $size()

Dynamic information and a variable second argument will be implement in a
future patch.
Fix compile warning.
vlog95: spelling fixes
vlog95: add support for emitting nested class L-values
vlog95: a zero width expression is special and is not a self determined context
Added missing support for binary ^~ in eval_tree.cc
Fix for github issue #6.

When creating a constant zero for implementing a unary minus operation
using a binary subtraction operator, the constant needs to be to exactly
the expression width.
Merge branch 'master' of https://github.com/steveicarus/iverilog
Handle typedefs in $root scope.
Handle enumeration literals that are in $root.
Type name expressions down to elaboration.
Implement $bits(type) to get the size of a type

In the process, I implemented a means to get at
previously elaborated types from the pform type
pointer.
Fix problem with enum types in re-used modules

When a module is instantiated multiple times, the enum
types contained within would cause trouble. This fixes
that by elaborating in proper scope context.
Elaborate r-vlaue packed struct members pads as needed.
Merge pull request #5 from cliffordwolf/master

Added missing support for binary ^~ in eval_tree.cc
Remove fixable unused-parameter warnings

I see other warnings within vhdlpp/lexor.cc caused by a flex bug
(see http://sourceforge.net/p/flex/bugs/115/), which I won't try to work around.
Spelling fixes

Mostly comments.
One user-visible string ("Evalutated to ") changed in the debug_eval_tree case.
Remove lint detected by clang

With this change, iverilog builds and runs with no extra warnings when using clang 3.0
Merge branch 'master' into vec4-stack