Change pinMode to SET_INPUT or SET_OUTPUT

Original code is using WRITE from fastio, but original used pinMode to
set pin direction and did not use the fastio SET_INPUT or SET_OUTPUT.
This caused an issue with the rotary encoder interface to  boards based
on teensyduino, since for teensyduino pin numbers for fastio and the
usual Arduino IO are different.
Real-time filament diameter measurement and control

This feature allows the printer to read the filament diameter
automatically and adjust the printer in real time.  Added code to read
an analog voltage that represents a filament diameter measurement.  This
measurement is delayed in a ring buffer to compensate for sensors that
are a distance away from the extruder.  The measurement is used to
adjust the volumetric_multiplier for the extruder.  Some additional g
codes (M404, M405, M406, M407) are used to set parameters and turn
on/off the control. g code M221 is updated.  Pins for RAMPS1.4, RAMBO,
and Printrboard are identified for analog input.  The configuration file
is updated with relevant user parameters.
Improvements and bug fixes in sensor delay buffer for filament sensor code

Improvement to avoid reinitializing delay buffer with every print. Fixed
issues in buffer indexing and memory out of bounds due to floating point
imprecision.  Simplified the code by avoiding conversion to standard
diameter and 1cu mm extrusion, which caused complications in determining
mm extruded.
Filament sensor changes to config file

Update the config file for improvements and clarifying what diameter to
use in the slicer software.
Revert "Change pinMode to SET_INPUT or SET_OUTPUT"

This reverts commit 1d0fe035f3aeb4af0e686fcb13c9a720248db462.
Correct analog sampling time for additional A to D sample

Adjusted the  #define PID_dT to reflect 10 A to D sample steps, vs
original 8.
Update README.md

Added the new m-codes to this document.
Merge pull request #1037 from filipmu/Filament-Sensor

Support for a filament diameter sensor