Restrict _.union and _.difference to accept arrays only

According to PR #1317, `_.union` and `_.difference` have been restricted to accept arrays only.
This accomplished by adding a new parameter named `strict` to the internal `flatten` function.

So we have:

```javascript
_.union([1, 2], [3]) // => [1, 2, 3]
_.union([1, 2], 3) // => [1, 2]

_.difference([1, 2], [1]) // => [2]
_.difference([1, 2], 1) // => [1, 2]
```