hci: initial import of hci sub-package
Migrate from c-shim to go-hci

The diff looks large, as the go-hci is not a pin-to-pin drop-in
replacement of the c-shim. However, the rewritten files are actually
pretty small.

We've been re-organzing and refacoring the code base to move c-shim
specific code to l2cap.go, or leave it in server.go. So right now
at this point, the changes of migration itself actually only involves
server.go and the separate advertser.go, which were extracted from
from the server.go.

Currently, the non-c-shim branch is working fine, but still need a
lot of re-working, refactoring, and layering.
Obsolete c-shim codebase
Support Self-referential function options
Unexport server members. Support options only.