Add tests to SillyUsernameFormatter

Non-determinism and side-effects make unit testing incredibly painful. If we
carefully inject all our side-effecting dependencies, we can easily mock them
out while testing. For this case, we inject a new Random instance through the
constructor and provide it via Dagger during runtime, but replace it with a fake
instance for testing where we can control the result.
Add mockito and dexmaker dependencies

The latest stable release of dexmaker lacks some important fixes that allow
mocking of internal Android framework classes. Compiling them yourself is
annoying which is why I included the JARs directly here.
Use Mockito to test the SillyUsernameFormatter

Mockito can save us from writing a ton of boilerplate code. In this case it
doesn't seem to matter a lot, but that is because we extend the Random class and
don't have to implement a complete interface. In addition to creating simple
no-op mocks, Mockito also enables us to record and verify the behavior of mocks
which we will see later.