Added DatabaseHelper to manage persistent data using SQLite

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>
Added fest-android to construct fluid assertions in unit tests

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>
Updated android target sdk from 18 to 19

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>
Added the database subsystem for storing persistent data via SQLite

- DatabaseHelper provides an interface for Android's SQLite API. It is
  used to establish connections with the database, invoke creation and
  upgrades, and run any database changescripts when needed.

- DAO files are used to access a model's persistent data. Typically,
  each DAO file will correspond to a model and provides an interface for
  that model to store its data.

- Added Schema model and its corresponding DAO. Schema keeps track of
  which database changescripts have been applied to a device's database
  so that future updates will not invoke a previously applied
  changescript.

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>
Added Note model for managing each note's data fields

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>
Added the Note DAO for storing persistent note data

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>
Added the first database changescript to create the necessary tables

Once a changescript is committed, it cannot be removed or modified. This
is by convention to ensure easier debugging and testing. Any changes or
modifications to the database will need to be done by new changescripts.

The structure of a changescript filename is as follows

- sc - lowercase initials for "schemachange" in the event changescript
  files need to be distinguishable from other files in the directory.

- a two-digit major release number for the target release the
  changescript is being applied to. This is not strictly enforceable
  since versioning may change, but best effort is recommended to ensure
  consistency

- a two-digit minor release number for the target release the
  changescript is being applied to. This is not strictly enforceable for
  the same reasons listed earlier

- a four-digit point release number. In this application's case, this
  point release number is to be treated as a changescript's unique id.
  Each new changescript must have an id incremented by 1 from the most
  recent changescript's id.

Other conventions to note:

- A "." is used as a seperator between all of the data described in the
  previous section.

- Changescripts cannot be modified or removed once committed. All future
  modifications to the database must be performed through entirely new
  changescripts. This way, everyone will have the same database
  structure, having gone through the exact same operations as everyone
  else. This will make debugging and testing as simple as possible when
  it comes to databases.

Following this structure and these conventions will ensure that the
changescripts will get applied in order and that future development of
the application will be as easily testable and debuggable as possible.

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>
Added the default screen following the MVC architecture for Android

Following the MVC architecture for Android, there are model files, view
files (which combine an XML template and a corresponding view class),
and activity files which take on the role of controllers.

Activities communicate directly with models. Views communicate with
activities using the "ViewListener" interface. The ViewListener
interface is declared in the View as an inner class and implemented in
the Activity. It defines the Activity's responses to View events. The
View class directly receives View events and passes them off to the
appropriate methods defined in the Activity's ViewListener
implementation. This way, the view delegates the actual event-handling
to the activity (the controller).

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>