Mask mode: Start implementing custom mask (WIP, #762).

Current limitation: You can't yet use a placeholders within
these custom placeholders. We need to recurse!

Also, a default mask (like ?1?2?2?2?2?2?2?3?3?3?3?d?d?d?d)
is not implemented yet. It doesn't make sense until we
support -min-len and -max-len for mask mode.