Added more aliases to write pins in an IO port.
Validate port numbers at runtime.
Now there are separate types for writing to DIR and OUT registers.
Provide specific IO registers instead of letting them have at it.
Added a separate module for compiling.
Added comments and moved stuff around.
Updated example.
Write a mainfile.
Updated example.
Merge branch 'mainfile-gen' into dev