Extract hal to own package

see: https://github.com/cdent/hal