New Android Library Module
New Java Class AutoGapLinearLayout
Append Functionality First Gap to AutoGapLinearLayout

Append method setFirstGap and relatives to AutoGapLinearLayout.
Let AutoGapLinearLayout auto-add the first gap on instantiation/reset.

- Append private methods generateGap and generateGapLayoutParams
  to help generate gaps.

- Append public method setFirstGap for setting/resetting the first gap.

- Append XML attr firstGap and modify public constructors.
  Let AutoGapLinearLayout auto-add the first gap on instantiation.

- Append and override public methods removeAllViews.
  Let AutoGapLinearLayout auto-add the first gap on reset.

- Each width of gaps when horizontal orientation,
  or each height of gaps when vertical orientation
  is controlled by a variable, LinearLayout.LayoutParams.weight.
Modify Functionality Add View in AutoGapLinearLayout

Modify public method addView and relatives in AutoGapLinearLayout.
Let AutoGapLinearLayout auto-add gap after view added.

- Override nested class LayoutParams with new layout param., gap,
  to control gap afterward.

- Append XML attr layout_gap for XML layout support.

- Override public method generateLayoutParams for system call.

- Override protected methods checkLayoutParams,
  generateDefaultLayoutParams and generateLayoutParams for invocation.

- Override public method addView to add view with a gap.

- Each gap is tagged with relative view.
Modify Functionality Remove View in AutoGapLinearLayout

Modify public methods removeView and others in AutoGapLinearLayout.
Let AutoGapLinearLayout auto-remove gap after view removed.

- Override public methods removeView and removeViewAt
  to remove view and relative gap, which is tagged by view indicated.

- Override public method removeViews to correct argument,
  and remove views indicated.
Modify Functionality Request Layout in AutoGapLinearLayout

Modify public methods requestLayout and relatives
in AutoGapLinearLayout.
Let AutoGapLinearLayout layout properly.

- Override public methods requestLayout
  to correct layout params of each gap.

- Append private method setGapLayoutParamsInLayout
  to correct layout params of given gap
  in any orientation and any weight given.

- For each gap, width will be 0 and height will be matching parent
  while orientation is horizontal, and vice versa.
Append Demo Sample