Refactoring FarPatchTables and FarPatchTablesFactory

minor code cleanups:
- change Descriptor::iterator to use a static vector instead of overly complicated logic
- change the private factory PatchType struct for better readability
- variable name changes