Fix a bug that I2C driver can not transfer of 1Byte/2Byte.

I2C driver was not considered about 1Byte/2Byte transfer.
Add 1Byte/2Byte transfer processing in I2C driver.
Fix a bug that initialize setting of SPI clock value is not correct.

Modify the value as below.
　uint16_t mask = 0x000c0; ->
　uint16_t mask = 0x000c;
Fix some bugs that IRQ Edge Interrupt will not operation normal.

The bugs of IRQ Edge Interrupt as below.
- Not call a function that was registered in rise, always call a function that was registered in the fall.
- If there are multiple interrupt sources, there is a possibility that end the wrong interrupt processing.
Add definition of User button(SW0 and SW1)

Add definition of User button for users.
Fix a bug that usticker wait interval is not constant.

When read the timer value, it have a potential to read abnormal value.
Because we used 16bit + 16bit cascade timer and read timer count separately.
Changed usticker timer from 16bit + 16bit cascade timer to 32bit timer to fix the bug.
Change I2C driver transfer sequence

Change I2C driver transfer sequence to go according to H/W manual.
Changed contents are as below.
- Access procedure of ACTBT bit of MR3 register
- Issuance procedure of stop condition
Merge pull request #762 from masaohamanaka/master

Targets: RZ_A1H - Fix some bugs about I2C, SPI, Interruptin and add terminal definition of user button.