Converts a number with an arbitrary base to a number with another arbitrary base. Supports negative numbers and decimals. Bases above 36 are not currently supported due to ambiguity, but one could easily add to the "digits" list to add support for them. Additionally, large numbers may not be converted accurately due to floating-point bit length.