* Add `@Spi` annotation as the general annotation for SPI definition.
* Add isDefault in @Spi, add loadDefaultInstance and improve loadFirstInstanceOrDefault method, improve test cases
* Add SpiLoaderException class for thrown when something goes wrong while loading Provider
* Rearrange packages of base SPI mechanism
NOTE: this PR contains breaking changes regarding API.
The Sentinel transport module provides basic interfaces about Sentinel monitoring API server and client
(CommandCenter and HeartbeatSender) as well implementations using different libraries or protocols.