Edison - c++ link error if multiple source files /mraa_uart_init fails

Two different changes - Maybe should be two pull requests.  But...

Problem 1: programs that include mraa.hpp in mutliple source files will error in linking with multiple definitions.
I have simple test case, where I split up blink_io into two files, where the 2nd one was simply
```
    #include <signal.h>    
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdlib.h>
    #include <unistd.h>

    #include "mraa.hpp"
    #define DEFAULT_IOPIN 13
    #define DEFAULT_IOPIN2 2

    mraa_result_t  SetIOPinVal(mraa::Gpio* gpio, int iVal) {
        return gpio->write(iVal);
    }
```
The first file is the standard one except I added a function prototype for the function above, and I called it instead of the gpio->write

Problem 2: 
On the Edison, if you all mraa_uart_init(0), to hopefully initialize the IO pins associated with the UART, it fails as the uart was not defined at all in the edison fab c file.  I simply copied the data from the Galileo fab file.  I defined it had two, but not sure, could simply be 1.