Move resolve_*_protocol to IDF object
Resolve_*_protocol methods only take processing profiles when needed
Move printIdf to idf object
Replace protocols_db data structure with idf object
Stop passing around protocol_db
All hard-coded protocols are resolved in the same way
library preparation is a hard-coded protocol
Generic method for resolving protocols with processing profiles
Merge branch 'copy' into gb_master