Bug 1000839: Fixes and unit tests for NfcUtils.encodeNDEF()

Because record.type is a Uint8Array, not a regular Array. Doint ```b.push(record.type)``` would result in adding one single new element (the ```record.type``` array) at the end of ```b``` array.

Consider: 
```
var a = [1, 2, 3];
var b = new Uint8Array([10, 11, 12]);
a.push(b)
// a === [1, 2, 3, Uint8Array[3]]
```

and 

```
var a = [1, 2, 3];
var b = new Uint8Array([10, 11, 12]);
a.push.apply(a, b)
// a === [1, 2, 3, 10, 11, 12]
```