Use individual cmake files for each namespaces

This pull request divides the single cmake file into multiple files for each namespace. DART have some optional dependencies such as `bullet collision`, `nlopt`, `ipopt`, and `snopt`, and there are optional code, which should be built only when the corresponding optional dependencies are installed. Previously, DART has used single cmake files to build `dart` and `dart-core` (not examples nor unittests) and it makes hard to control the optional code to be built depends on the corresponding dependencies.

Additionally, this pull request adds all-inclusive headers, dart.h and dart-core.h. We had to include all the necessary header files of dart to write a software that has dependency of dart. For example, this is part of source code of `hardcodedDesign` app in dart:
```c++
-#include "dart/collision/CollisionDetector.h"
-#include "dart/dynamics/Skeleton.h"
-#include "dart/dynamics/BodyNode.h"
-//#include "dart/constraint/OldConstraintDynamics.h"
-#include "dart/dynamics/Joint.h"
-#include "dart/dynamics/MeshShape.h"
-#include "dart/dynamics/BoxShape.h"
-#include "dart/dynamics/CylinderShape.h"
-#include "dart/dynamics/EllipsoidShape.h"
-#include "dart/utils/Paths.h"
-#include "dart/common/Timer.h"
-#include "dart/math/Helpers.h"
-#include "dart/gui/GLFuncs.h"
-#include "dart/gui/Win3D.h"
-
-namespace dart {
-namespace dynamics {
-class Skeleton;
-class ConstraintDynamics;
-}  // namespace dynamics
-}  // namespace dart
```
This number of lines can be reduced single line as:
```c++
#include "dart/dart.h"
```
or
```c++
#include "dart/dart-core.h"
```
If we want to include specific namespaces of dart then:
```c++
#include "dart/common/common.h"
#include "dart/math/math.h"
#include "dart/dynamics/dynamics.h"
```

This fixes #158