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-model-check: initial commit.
model-checking: SMT interaction.
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.
ivory-stdlib: add value-returning cond, just like cond_

smdh we didn't have this earlier
backend-aadl: CompileM paramaterized by unique identifier type

* current flat namespace for unique identifiers is not correct,
  needs to support scopes
ivory-aadl: support for logging warnings
ivory-backend-aadl: processconnections can be named
haddock parsing fix.