Added NPNDatabase class. (Implements rewrite database based on NPN matching)
NPNDatabase class implements storage with list of bound GNets which implement class representative for each NPN class. Class supports nets with up to 6 input gates. When get(bnet) function is used it returns tuple of list of bound GNets which implement NPN class of bnet and NPN transformation (negation mask and input permutation) to apply to representative to get bound GNet equivalent to bnet.