use stricter asserts where possible

Solves the false positives when tests fail to compare strings, eg. 
```
10:04:55 1) Test\Files\Cache\Updater::testTouchWithMountPoints
10:04:55 Failed asserting that '530e005393326' is not equal to <string:530e005293045>.
```
Fixed by using assertSame, which checks the type first and then does the correct string comparison. I assume that assertEquals interprets one of the numbers as an INT and then fails because the numbers are too big.

This PR also uses stricter asserts in all core tests
- assertEquals -> assertSame (unless we are comparing objects or arrays)
- assertXXX(false -> assertFalse
- assertXXX(true -> assertTrue
- assertXXX(null -> assertNull
- assertNotEqual -> assertNotSame if appropriate (numbers still use assertNotEquals to catch 1 == '1')

@MorrisJobke @DeepDiver1975 @PVince81 @schiesbn @blizzz @icewind1991 @bantu this touches many tests, lets see what jenkins has to say. I already fixed `lib/private/files/cache/cache.php` and `lib/private/files/cache/permissions.php` which did not change the type of some db columns and caused some of the tests to fail on my local machine.