Initial implementation of machineProfile()

- Issue https://github.com/beltex/swift-smc/issues/4
- Writes to JSON
- Helper methods to get all valid TMP keys and fan info
- Static array for TMP enum to be able to enumerate all values. Not ideal
  solution, but seems to be the current best.