Refectoring: Move classes into other modules

1. Move Customer related classes into Customer Module
2. Move address gpsposition  into common classes
change concept from concrete to abstract

Scheduling happens ONLY on schedulable resources, which inside
scheduling module, such as plant resource and truck resource, other
than plant or truck itself. So the concept outside the scheduling
module still can be reused as basic information. And this method avoids
bidirectional relationship created on unidirectional cross-moduling
dependency.