Major refactoring, API change

- Changed the API to accept 2 parameters
- Included base 2 & base 10 divisors
- Separated `bits` & `bytes` sizes (mixing is no longer possible)
- Extended customization by allowing overrides