Remove circular dependencies in regulator includes

Remove the circular dependencies that currently exist among regulator
include files.  Add forward declarations in two key includes that cause
the issue.

This requires the creation of a new source (.cpp) file and as a result a
new static library.

Change-Id: Ib136adf0a0cf6b30781b64cfecede0fbd50e13f7
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
diff --git a/phosphor-regulators/test/id_map_tests.cpp b/phosphor-regulators/test/id_map_tests.cpp
index 7a1307a..5d47d7d 100644
--- a/phosphor-regulators/test/id_map_tests.cpp
+++ b/phosphor-regulators/test/id_map_tests.cpp
@@ -13,7 +13,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+#include "device.hpp"
 #include "id_map.hpp"
+#include "rail.hpp"
+#include "rule.hpp"
 
 #include <exception>
 #include <stdexcept>