[HAL][NRF51822] enable I/O mapping and peripheral dynamic assignment for I2C and SPI

+ to enable any digital I/O of nRF51822 to be used as I2C's SDA/SCL or SPI's MISO/MOSI/SCK.
+ to avoid conflict between I2C and SPI by dynamically assigning peripheral

    The nRF51822's I2C_0 and SPI_0 (I2C_1, SPI_1 and SPIS1) share the same address. They can't be used at the same time. So we use I2C_0 and SPI_1 as default. See nRF51822 address information at nRF51822_PS v2.0.pdf - Table 15 Peripheral instance reference.

See discussion at #573 
@Sissors  Yes, as they are not now invoked anyway, but rather to have this removed. 

Handling disabling/enabling peripheral is a different story. So for now, let's leave it out of the _free functions.