optimize: use ndarrays instead of lists in TNC; separate tests from optimize

Following the discussion in #329, this PR aims at using ndarrays instead of lists in the C interface to TNC. As part of this, customs functions to handle lists in `moduleTNC` are dropped.
Note that I am quite new to numpy C-API, so any comment is very welcome...

The last commit separates tests of `optimize.tnc` from `optimize.optimize`.