Rewrite with a better architecture proposed by Fuco1 on #6.

Allow user to customize skeleton-complete with his own skeleton
extracter, matcher, and buffer-filter.