Merge pull request #24 from l2yao/master

adding integration test module
sliceJoin replaced with flatSelect
A new expression dsl system is introduced to allow easy 2-stage selection: page -> element -> text/attribute
join has one more parameter section to allow insertion of data after flatten, this fully enabled LINQ-style query lambda that has a left-right-select format. Thanks a lot Liu Chen!
aggregate implicit view bound into 2 packages: dsl for those used in dsl, view for those aren't.
minor refactoring: e.g. PageBuilder -> Session, PageSchemaRDD -> PageRowRDD
rename test module to integration
moved several unit test
examples are no longer abused as integration test.
example has more parameters
fix another bug caused by SparkSQL's handling of dot (namely, a new function in Utils is actively used to eliminate dots from keys)
Value changed to Literal
add implicit SymbolToExprView
replaceKey moved into PageRow
NamedFunction1/Expr can have a defaultName that will be override by explicit name
Various rename of functions
no Warning if SessionNotFoundException, which means session is already cleaned before
getOnlyPageKey changed to $
getAllPagesKey enabled as $_*
these keys can only be accessed through predefined functions in dsl and can no longer from Symbols
fix a few bugs in Integration tests
revert the rootkey
SparkEnvSuite changed to SpookyEnvSuite
move attrs unit test
change all test suite from traits to abstract classes
Integration test template implemented.
rename and add some accumulators
all unit tests on RDD level are moved to integration test
===========PROBLEMS======================
1. PageRowRDD.persist() doesn't work for inherited operations (e.g. flatMap)
2. Integration test throws java.io.IOException: PARSING_ERROR(2), probaly a spark problem
fix the persist problem by nolonger using self.transformation in PageRowRDD
fix integration test by using beforeAll and afterAll
add test-install for integration test
fix a typo in IntegrationSuite
fix volatile unit tests: move initialization of spooky into beforeAll() and change global variables to lazy
disable s3 in unit tests, its a counterpattern