Add .gitignore
Remove unnecessary `where`
Replace `:=>` by `Supports`
machine types, constraints and classes

We now explore the strategy of defining machine constraints using
ConstraintKinds.  The features module has been renamed to
Aim/Machine.hs
removed -Werror
classes that capture generic machine supported types
added documentation and reorganized code
Machine class exposed
got rid of Bits32 and Bits64 class
got rid of same architecture
added the Instructions type
better handling of instruction

1. Instruction is an instance of IsString and hence a lot of convenience.

2. The constructor Instruction is hidden to achieve better safety.

3. the function `assemble` added to create the final textual form of
   the instruction
commenting on instruction and block comments
added abstract syntax of the assembly language program
Aim.Machines bothers only of machines now

The actual assembly language now is delegated to
Aim.Assembler.Language.
added the Aim monad
exposed Aim.Monad from the top leve
Travis build added