Make PortUtil non-final and constructor non-private -> enable mocking

Final classes cannot be mocked without tools like PowerMock.
Also, private constructors cannot be called to instantiate Spock mocks.
PortUtilTest: use Spock's Spy feature to stub out PortUtil.isAvailable()

Now we do not need to allocate and close a real port anymore in order to
be able to test the case that no port is available in the system. The
trick to limit the search to MAX_PORT_NUMBER is also obsolete now.

Add CGLIB test dependency needed by Spock to mock/spy classes. Otherwise
Spock can only mock/spy interfaces via Java dynamic proxies. For classes
we do need CGLIB.
Cosmetics: code style settings and auto-reformatting
Spock + Powermockito showcase: final class PortUtil with static methods

- Use PowerMockRule for bootstrapping instead of PowerMockRunner
- Cover private constructor using @PrepareForTest
- @PrepareForTest also enables us to use 'mockStatic' (currently only
  used in two rather pointless showcase test cases)
- Show how to mock external resources (here server/datagram sockets)
  and how to intercept functions using those resources internally, e.g.
  without any option provide them via dependency injection.
- Show how to intercept object creation and throw an exception instead
- Demonstrate partial mocking/stubbing via Powermockito.spy()