Create base optimoroute package.

- Updated .gitignore
- Created requirements.txt and added requests and jsonshema in it.
Initial code for optimoroute.

Core:
- Add CoreOptimoAPI class that provides a low-level interface to
  optimoroute's service.

- Add CoreOptimoEncoder that understands datetime objects and
  serializes them to the format expected by optimoroute.

- Add plan_route_request.json file that describes the JSON schema for
  the various optimoroute entities.

- Add _get_json_file() and _load_schema_store() utility functions that
  load the plan_route_request.json file into memory.

Api:
- Add BaseModel class that all entities must subclass.

- Define the bare minimum entities and their validation, in order to
  perform a successful Plan optimization. These include:
  SchedulingInfo, TimeWindow, Order, Break, WorkShift, UnavailableTime,
  Driver, RoutePlan.

- Add OptimoEncoder that serializes BaseModel objects into JSON
  structures.

- Add OptimoAPI that provides a high-level interface to optimoroute's
  service.

- Add OptimoResponse that is light wrapper on top of ``requests``
  library Response object.

Tests:
- Monkey-patch ``requests.sessions.Session.request`` method to avoid
  any network operations.

- Add MockedResponse class that will be returned instead of ``requests``
  library Response object.

- Add 3 tests for the successful operations of .get(), plan() and
  stop().