ivory-stdlib: Add Maybe module for nullable values.

- Much like the Haskell 'Maybe' type, it must be unwrapped
  in order to use the value, always making sure to handle the
  case where there is no value.
ivory-stdlib: Don't use Ix type for string capacity.

- Fixes a wraparound bug where capacity ended up being zero.
ivory-opts: major refactoring/simplification, inspired by fix for a ? b : c choice operator.
ivory-backend-aadl: extend Monad with scope (naming) tracking, and warning system
ivory-backend-aadl: array types use 'data implementation'
ivory-backend-aadl: add type contexts for global array defs

* prevents duplication in multiple modules
* means running every module compile & asm compile inside a TypeCtxM
  and getting tan extra document from runTypeCtxM at the end
stdlib: remove unused var warning.
ivory-bitdata: make examples loadable in ghci.
examples: add regression test for conditional assertions.
ivory-stdlib: new arrayCopy API.  (Will break old smaccmpilot builds.)
ivory language: add Eq instance for struct labels.
ivory language: cleanup warnings.
add cabal-sandbox to gitignore.
fix bug in getting latest var in toExpr.
model-check mod, loops properly.