Changelog:
- Restructure the package to improve maintainability.
- Rename the default decorator back to `simple_profile()` to avoid conflicts.
- Change the default time unit to nanoseconds.
- Change the default memory unit to bytes.
- Add `precision`, `time_precision` and `memory_precision` arguments to set the precision of log values.
- Add `print_args` and `print_result` arguments to log the functions arguments and result.
- Add a `separator` argument to change the separator to use between log values.
- Rename `time_unit` and `memory_unit` arguments to `unit` when possible to improve readability.
- Document the package.