BUG 1131: Introduced sealing of builder, initial clean up of ModuleBuilder.

Introduced sealing of builders, which makes sure builder is not
modified once the product of build was created.

Logic in parser prevented this already, but it was external
check to builders, not internal.

Sealing of builders is critical for implementing safe
instantiation since once you create copy of builder
(eg.instantiation of grouping) you do NOT want
to have grouping definition accidentally change.

This should prevent introducing regressions as described above.

Change-Id: Iad2dfc8036d27f3538e48315eb1fc17a5481f67b
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>