Make defnp support multi-arity functions

I have implemented support for multi-arity functions in the defnp macro, which previously resulted in a compile error.
When shown in the profiling report, the name of the function gets a suffix "_x", where x is the arity. This happens only in the multi-arity case. For example:

    (defnp f
        ([x] (reduce + (range x)))
        ([] (f 123)))

creates two lines in the report, namely f_1 and f_0.