Add new features to the Forward module. Based initially on work by @dww. We started a new branch in an effort to avoid string translation breakage on the 2.x branch. The 2.x branch will continue to receive bug fixes unless the changes would result in having to update language translations. The 3.x branch will contain new features that require additional strings to be translated.