Frontend parts search & parts improvements

*Moved parts searching to frontend using Fuse.js
*Refactoring of some parts api methods for clarity
*Added requires_keys decorator
*Added column to part_property to indicate primary value vs. ancillary value
*Added fields in fake.js and create parts console to specify this

Fixes #243