Changed how the GPIO controller will be accessed.

Now use context based access to the GPIO controller. A context is created
at the start of the program and free'd at the end.

Added functions to successfully create and free a context, along with correctly
mapping / opening the registers.

 On branch master
 Changes to be committed:

	modified:   gpiodrive.c
	modified:   gpiodrive.h
	modified:   gpiotest.c